new testcase
[oota-llvm.git] / test / CodeGen / X86 / mul-shift-reassoc.ll
diff --git a/test/CodeGen/X86/mul-shift-reassoc.ll b/test/CodeGen/X86/mul-shift-reassoc.ll
new file mode 100644 (file)
index 0000000..f870f7a
--- /dev/null
@@ -0,0 +1,12 @@
+; RUN: llvm-as < %s | llc -march=x86 | grep lea
+; RUN: llvm-as < %s | llc -march=x86 | not grep add
+
+int %test(int %X, int %Y) {
+       ; Push the shl through the mul to allow an LEA to be formed, instead
+        ; of using a shift and add separately.
+        %tmp.2 = shl int %X, ubyte 1
+        %tmp.3 = mul int %tmp.2, %Y
+        %tmp.5 = add int %tmp.3, %Y
+        ret int %tmp.5
+}
+