New testcases to ensure sub's are maximally reassociable
authorChris Lattner <sabre@nondot.org>
Wed, 15 May 2002 21:59:31 +0000 (21:59 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 15 May 2002 21:59:31 +0000 (21:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2633 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/Reassociate/2002-05-15-SubReassociate.ll [new file with mode: 0644]
test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll [new file with mode: 0644]

diff --git a/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll b/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll
new file mode 100644 (file)
index 0000000..fcbd723
--- /dev/null
@@ -0,0 +1,14 @@
+; With sub reassociation, constant folding can eliminate all of the constants.
+;
+; RUN: if as < %s | opt -reassociate -constprop -instcombine -dce | dis | grep add
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+
+int "test"(int %A, int %B) {
+       %W = add int -5, %B
+       %X = add int -7, %A
+       %Y = sub int %X, %W
+       %Z = add int %Y, 12
+       ret int %Z
+}
diff --git a/test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll b/test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll
new file mode 100644 (file)
index 0000000..aa0066a
--- /dev/null
@@ -0,0 +1,15 @@
+; With sub reassociation, constant folding can eliminate the two 12 constants.
+;
+; RUN: if as < %s | opt -reassociate -constprop -dce | dis | grep 12
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+
+int "test"(int %A, int %B, int %C, int %D) {
+       %M = add int %A, 12
+       %N = add int %M, %B
+       %O = add int %N, %C
+       %P = sub int %D, %O
+       %Q = add int %P, 12
+       ret int %Q
+}