const-pointers.ll 875 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. ; RUN: opt -basicaa -dse -S < %s | FileCheck %s
  2. target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  3. %t = type { i32 }
  4. @g = global i32 42
  5. define void @test1(%t* noalias %pp) {
  6. %p = getelementptr inbounds %t, %t* %pp, i32 0, i32 0
  7. store i32 1, i32* %p; <-- This is dead
  8. %x = load i32, i32* inttoptr (i32 12345 to i32*)
  9. store i32 %x, i32* %p
  10. ret void
  11. ; CHECK-LABEL: define void @test1(
  12. ; CHECK: store
  13. ; CHECK-NOT: store
  14. ; CHECK: ret void
  15. }
  16. define void @test3() {
  17. store i32 1, i32* @g; <-- This is dead.
  18. store i32 42, i32* @g
  19. ret void
  20. ; CHECK-LABEL: define void @test3(
  21. ; CHECK: store
  22. ; CHECK-NOT: store
  23. ; CHECK: ret void
  24. }
  25. define void @test4(i32* %p) {
  26. store i32 1, i32* %p
  27. %x = load i32, i32* @g; <-- %p and @g could alias
  28. store i32 %x, i32* %p
  29. ret void
  30. ; CHECK-LABEL: define void @test4(
  31. ; CHECK: store
  32. ; CHECK: store
  33. ; CHECK: ret void
  34. }