summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-03-05 07:18:54 +0000
committerChris Lattner <sabre@nondot.org>2010-03-05 07:18:54 +0000
commitc6c1523f5921a783115dda89d74c3b5d424223a7 (patch)
tree1de856e3faf628d238cd11dc9865282c355b7eca /llvm/test
parent4899cbc77d9e496e0db497660f71b00e8b7652d3 (diff)
downloadbcm5719-llvm-c6c1523f5921a783115dda89d74c3b5d424223a7.tar.gz
bcm5719-llvm-c6c1523f5921a783115dda89d74c3b5d424223a7.zip
fix a nice subtle reassociate bug which would only occur
in a very specific use pattern embodied in the carefully reduced testcase. llvm-svn: 97794
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/Reassociate/crash.ll15
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/test/Transforms/Reassociate/crash.ll b/llvm/test/Transforms/Reassociate/crash.ll
index 060018d8da4..6f21b66ed00 100644
--- a/llvm/test/Transforms/Reassociate/crash.ll
+++ b/llvm/test/Transforms/Reassociate/crash.ll
@@ -23,11 +23,22 @@ entry:
%3 = add nsw i32 undef, %1
%4 = add nsw i32 %3, %2
%5 = add nsw i32 %4, 4
- %6 = shl i32 %0, 3 ; <i32> [#uses=1]
+ %6 = shl i32 %0, 3
%7 = add nsw i32 %5, %6
br label %bb4.i9
-bb4.i9: ; preds = %bb3.i7, %bb1.i25.i
+bb4.i9:
%8 = add nsw i32 undef, %1
ret i32 0
}
+
+
+define i32 @test3(i32 %Arg, i32 %x1, i32 %x2, i32 %x3) {
+ %A = mul i32 %x1, %Arg
+ %B = mul i32 %Arg, %x2 ;; Part of add operation being factored, also used by C
+ %C = mul i32 %x3, %B
+
+ %D = add i32 %A, %B
+ %E = add i32 %D, %C
+ ret i32 %E
+}
OpenPOWER on IntegriCloud