diff options
author | Chris Lattner <sabre@nondot.org> | 2002-05-15 21:59:31 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-05-15 21:59:31 +0000 |
commit | 2241b7bfbbbd3896b8d90afbdc514dfdcb2f7195 (patch) | |
tree | 4a6808bbcbea95f5c506779a59642272f9fde6ce /test | |
parent | b064baf85173141ae1db95539b9a6e88829ba592 (diff) | |
download | external_llvm-2241b7bfbbbd3896b8d90afbdc514dfdcb2f7195.zip external_llvm-2241b7bfbbbd3896b8d90afbdc514dfdcb2f7195.tar.gz external_llvm-2241b7bfbbbd3896b8d90afbdc514dfdcb2f7195.tar.bz2 |
New testcases to ensure sub's are maximally reassociable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2633 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/Reassociate/2002-05-15-SubReassociate.ll | 14 | ||||
-rw-r--r-- | test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll | 15 |
2 files changed, 29 insertions, 0 deletions
diff --git a/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll b/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll new file mode 100644 index 0000000..fcbd723 --- /dev/null +++ b/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll @@ -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 index 0000000..aa0066a --- /dev/null +++ b/test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll @@ -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 +} |