diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/Regression/CodeGen/X86/mul-shift-reassoc.ll | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/Regression/CodeGen/X86/mul-shift-reassoc.ll b/llvm/test/Regression/CodeGen/X86/mul-shift-reassoc.ll new file mode 100644 index 00000000000..f870f7aa6fd --- /dev/null +++ b/llvm/test/Regression/CodeGen/X86/mul-shift-reassoc.ll @@ -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 +} +  | 

