Add tests of redundant load elimination
authorChris Lattner <sabre@nondot.org>
Thu, 16 May 2002 01:03:12 +0000 (01:03 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 16 May 2002 01:03:12 +0000 (01:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2636 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/LoadVN/RLE-Eliminate.ll [new file with mode: 0644]
test/Analysis/LoadVN/RLE-Preserve.ll [new file with mode: 0644]

diff --git a/test/Analysis/LoadVN/RLE-Eliminate.ll b/test/Analysis/LoadVN/RLE-Eliminate.ll
new file mode 100644 (file)
index 0000000..a8b1bf9
--- /dev/null
@@ -0,0 +1,26 @@
+; This testcase ensures that redundant loads are eliminated when they should 
+; be.  All RL variables (redundant loads) should be eliminated.
+;
+; RUN: if as < %s | opt -gcse | dis | grep %RL
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+;
+int "test1"(int* %P) {
+       %A = load int* %P
+       %RL = load int* %P
+       %C = add int %A, %RL
+       ret int %C
+}
+
+int "test2"(int* %P) {
+       %A = load int* %P
+       br label %BB2
+BB2:
+       br label %BB3
+BB3:
+       %RL = load int* %P
+       %B = add int %A, %RL
+       ret int %B
+}
+
diff --git a/test/Analysis/LoadVN/RLE-Preserve.ll b/test/Analysis/LoadVN/RLE-Preserve.ll
new file mode 100644 (file)
index 0000000..50a3256
--- /dev/null
@@ -0,0 +1,27 @@
+; This testcase ensures that redundant loads are preserved when they are not 
+; allowed to be eliminated.
+; RUN: as < %s | dis > Output/%s.before
+; RUN: as < %s | opt -gcse | dis > Output/%s.after
+; RUN: diff Output/%s.before Output/%s.after
+;
+int "test1"(int* %P) {
+       %A = load int* %P
+       store int 1, int * %P
+       %B = load int* %P
+       %C = add int %A, %B
+       ret int %C
+}
+
+int "test2"(int* %P) {
+       %A = load int* %P
+       br label %BB2
+BB2:
+       store int 5, int * %P
+       br label %BB3
+BB3:
+       %B = load int* %P
+       %C = add int %A, %B
+       ret int %C
+}
+
+