diff options
Diffstat (limited to 'llvm/test/Transforms/NewGVN/non-local-offset.ll')
-rw-r--r-- | llvm/test/Transforms/NewGVN/non-local-offset.ll | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/llvm/test/Transforms/NewGVN/non-local-offset.ll b/llvm/test/Transforms/NewGVN/non-local-offset.ll deleted file mode 100644 index 4a934127e7c..00000000000 --- a/llvm/test/Transforms/NewGVN/non-local-offset.ll +++ /dev/null @@ -1,59 +0,0 @@ -; RUN: opt -basicaa -newgvn -S < %s | FileCheck %s - -target datalayout = "e-p:64:64:64" - -; GVN should ignore the store to p[1] to see that the load from p[0] is -; fully redundant. - -; CHECK-LABEL: @yes( -; CHECK: if.then: -; CHECK-NEXT: store i32 0, i32* %q -; CHECK-NEXT: ret void - -define void @yes(i1 %c, i32* %p, i32* %q) nounwind { -entry: - store i32 0, i32* %p - %p1 = getelementptr inbounds i32, i32* %p, i64 1 - store i32 1, i32* %p1 - br i1 %c, label %if.else, label %if.then - -if.then: - %t = load i32, i32* %p - store i32 %t, i32* %q - ret void - -if.else: - ret void -} - -; GVN should ignore the store to p[1] to see that the first load from p[0] is -; fully redundant. However, the second load is larger, so it's not a simple -; redundancy. - -; CHECK-LABEL: @watch_out_for_size_change( -; CHECK: if.then: -; CHECK-NEXT: store i32 0, i32* %q -; CHECK-NEXT: ret void -; CHECK: if.else: -; CHECK: load i64, i64* %pc -; CHECK: store i64 - -define void @watch_out_for_size_change(i1 %c, i32* %p, i32* %q) nounwind { -entry: - store i32 0, i32* %p - %p1 = getelementptr inbounds i32, i32* %p, i64 1 - store i32 1, i32* %p1 - br i1 %c, label %if.else, label %if.then - -if.then: - %t = load i32, i32* %p - store i32 %t, i32* %q - ret void - -if.else: - %pc = bitcast i32* %p to i64* - %qc = bitcast i32* %q to i64* - %t64 = load i64, i64* %pc - store i64 %t64, i64* %qc - ret void -} |