summaryrefslogtreecommitdiff
path: root/test/Transforms/Reassociate
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2012-06-29 13:25:06 +0000
committerDuncan Sands <baldrick@free.fr>2012-06-29 13:25:06 +0000
commit96d2eff5c6713a2c5fd2cd61545e49637c332975 (patch)
tree2f167f6caf1cde3d398501db39d6a49dc98a83f4 /test/Transforms/Reassociate
parent06cb8ed00696eb14d1b831921452e50ec0568ea2 (diff)
downloadllvm-96d2eff5c6713a2c5fd2cd61545e49637c332975.tar.gz
llvm-96d2eff5c6713a2c5fd2cd61545e49637c332975.tar.bz2
llvm-96d2eff5c6713a2c5fd2cd61545e49637c332975.tar.xz
Fix a reassociate crash on sozefx when compiling with dragonegg+gcc-4.7 due to
the optimizers producing a multiply expression with more multiplications than the original (!). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159426 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/Reassociate')
-rw-r--r--test/Transforms/Reassociate/crash.ll11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/Transforms/Reassociate/crash.ll b/test/Transforms/Reassociate/crash.ll
index a99c844f01..ce586e15fb 100644
--- a/test/Transforms/Reassociate/crash.ll
+++ b/test/Transforms/Reassociate/crash.ll
@@ -133,3 +133,14 @@ define i8 @f0(i8 %x) {
%t7 = mul i8 %t6, %t0
ret i8 %t7
}
+
+define i32 @sozefx_(i32 %x, i32 %y) {
+ %t0 = sub i32 %x, %x
+ %t1 = mul i32 %t0, %t0
+ %t2 = mul i32 %x, %t0
+ %t3 = mul i32 %t1, %t1
+ %t4 = add i32 %t2, %t3
+ %t5 = mul i32 %x, %y
+ %t6 = add i32 %t4, %t5
+ ret i32 %t6
+}