diff options
author | Chris Lattner <sabre@nondot.org> | 2005-05-08 20:56:02 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-05-08 20:56:02 +0000 |
commit | f4946dff7109f139593586627ad131afa545387f (patch) | |
tree | 1595408a4028f4fbd5c0b041f982c40cacfbc527 | |
parent | c9fd097a01383323f166c14c17d3984620cad766 (diff) |
new testcases for PR557
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21782 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/Transforms/Reassociate/basictest3.ll | 50 | ||||
-rw-r--r-- | test/Transforms/Reassociate/basictest4.ll | 20 |
2 files changed, 70 insertions, 0 deletions
diff --git a/test/Transforms/Reassociate/basictest3.ll b/test/Transforms/Reassociate/basictest3.ll new file mode 100644 index 0000000000..c82b0176ab --- /dev/null +++ b/test/Transforms/Reassociate/basictest3.ll @@ -0,0 +1,50 @@ +; RUN: llvm-as < %s | opt -reassociate -gcse | llvm-dis | grep add | wc -l | grep 6 +; Each of these functions should turn into two adds each. + +%e = external global int +%a = external global int +%b = external global int +%c = external global int +%f = external global int + +implementation + +void %test1() { + %A = load int* %a + %B = load int* %b + %C = load int* %c + %t1 = add int %A, %B + %t2 = add int %t1, %C + %t3 = add int %C, %A + %t4 = add int %t3, %B + store int %t2, int* %e ; e = (a+b)+c; + store int %t4, int* %f ; f = (a+c)+b + ret void +} + +void %test2() { + %A = load int* %a + %B = load int* %b + %C = load int* %c + %t1 = add int %A, %B + %t2 = add int %t1, %C + %t3 = add int %C, %A + %t4 = add int %t3, %B + store int %t2, int* %e ; e = c+(a+b) + store int %t4, int* %f ; f = (c+a)+b + ret void +} + +void %test3() { + %A = load int* %a + %B = load int* %b + %C = load int* %c + %t1 = add int %B, %A + %t2 = add int %t1, %C + %t3 = add int %C, %A + %t4 = add int %t3, %B + store int %t2, int* %e ; e = c+(b+a) + store int %t4, int* %f ; f = (c+a)+b + ret void +} + diff --git a/test/Transforms/Reassociate/basictest4.ll b/test/Transforms/Reassociate/basictest4.ll new file mode 100644 index 0000000000..4f75e167c6 --- /dev/null +++ b/test/Transforms/Reassociate/basictest4.ll @@ -0,0 +1,20 @@ +; RUN: llvm-as < %s | opt -reassociate -gcse -instcombine | llvm-dis | not grep add + +%a = weak global int 0 +%b = weak global int 0 +%c = weak global int 0 +%d = weak global int 0 + +implementation + +int %foo() { + %tmp.0 = load int* %a + %tmp.1 = load int* %b + %tmp.2 = add int %tmp.0, %tmp.1 ; (a+b) + %tmp.4 = load int* %c + %tmp.5 = add int %tmp.2, %tmp.4 ; (a+b)+c + %tmp.8 = add int %tmp.0, %tmp.4 ; (a+c) + %tmp.11 = add int %tmp.8, %tmp.1 ; (a+c)+b + %RV = xor int %tmp.5, %tmp.11 ; X ^ X = 0 + ret int %RV +} |