aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/Reassociate/mul-factor3.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/Reassociate/mul-factor3.ll')
-rw-r--r--test/Transforms/Reassociate/mul-factor3.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Transforms/Reassociate/mul-factor3.ll b/test/Transforms/Reassociate/mul-factor3.ll
new file mode 100644
index 0000000..1272ff6
--- /dev/null
+++ b/test/Transforms/Reassociate/mul-factor3.ll
@@ -0,0 +1,16 @@
+; This should be one add and two multiplies.
+
+; RUN: llvm-upgrade < %s | llvm-as | \
+; RUN: opt -reassociate -instcombine | llvm-dis > %t
+; RUN: grep mul %t | wc -l | grep 2
+; RUN: grep add %t | wc -l | grep 1
+
+int %test(int %A, int %B, int %C) {
+ %aa = mul int %A, %A
+ %aab = mul int %aa, %B
+
+ %ac = mul int %A, %C
+ %aac = mul int %ac, %A
+ %r = add int %aab, %aac
+ ret int %r
+}