intrin-nocapture.ll 686 B

123456789101112131415161718192021
  1. ; RUN: opt < %s -O3 -S | FileCheck %s
  2. ; Address space intrinsics were erroneously marked NoCapture, leading to bad
  3. ; optimizations (such as the store below being eliminated as dead code). This
  4. ; test makes sure we don't regress.
  5. declare void @foo(i32 addrspace(1)*)
  6. declare i32 addrspace(1)* @llvm.nvvm.ptr.gen.to.global.p1i32.p0i32(i32*)
  7. ; CHECK: @bar
  8. define void @bar() {
  9. %t1 = alloca i32
  10. ; CHECK: call i32 addrspace(1)* @llvm.nvvm.ptr.gen.to.global.p1i32.p0i32(i32* nonnull %t1)
  11. ; CHECK-NEXT: store i32 10, i32* %t1
  12. %t2 = call i32 addrspace(1)* @llvm.nvvm.ptr.gen.to.global.p1i32.p0i32(i32* %t1)
  13. store i32 10, i32* %t1
  14. call void @foo(i32 addrspace(1)* %t2)
  15. ret void
  16. }