Make use of the result of the loads even though that means adding -instcombine.
authorNick Lewycky <nicholas@mxc.ca>
Wed, 14 Oct 2009 19:02:13 +0000 (19:02 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Wed, 14 Oct 2009 19:02:13 +0000 (19:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84125 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/BasicAA/2009-10-13-AtomicModRef.ll

index 3ccbc2f04f373ee322c6d3cf6a46c9c5fc29de07..5ea26e76a6af15149b5f4deb1dbad1b7a65ff4bd 100644 (file)
@@ -1,16 +1,16 @@
-; RUN: opt -gvn -S < %s | FileCheck %s
+; RUN: opt -gvn -instcombine -S < %s | FileCheck %s
 
 declare i8 @llvm.atomic.load.add.i8.p0i8(i8*, i8)
 
-define void @foo(i8* %ptr) {
+define i8 @foo(i8* %ptr) {
   %P = getelementptr i8* %ptr, i32 0
   %Q = getelementptr i8* %ptr, i32 1
 ; CHECK: getelementptr
   %X = load i8* %P
-; CHECK: = load
   %Y = call i8 @llvm.atomic.load.add.i8.p0i8(i8* %Q, i8 1)
   %Z = load i8* %P
 ; CHECK-NOT: = load
-  ret void
-; CHECK: ret void
+  %A = sub i8 %X, %Z
+  ret i8 %A
+; CHECK: ret i8 0
 }