mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
a15fdaa292
x * 40 => shlq $3, %rdi leaq (%rdi,%rdi,4), %rax This has the added benefit of allowing more multiply to be folded into addressing mode. e.g. a * 24 + b => leaq (%rdi,%rdi,2), %rax leaq (%rsi,%rax,8), %rax llvm-svn: 67917
16 lines
388 B
LLVM
16 lines
388 B
LLVM
; RUN: llvm-as < %s | llc -march=x86-64 | grep lea | count 3
|
|
; RUN: llvm-as < %s | llc -march=x86-64 | grep shl | count 1
|
|
; RUN: llvm-as < %s | llc -march=x86-64 | not grep imul
|
|
|
|
define i64 @t1(i64 %a) nounwind readnone {
|
|
entry:
|
|
%0 = mul i64 %a, 81 ; <i64> [#uses=1]
|
|
ret i64 %0
|
|
}
|
|
|
|
define i64 @t2(i64 %a) nounwind readnone {
|
|
entry:
|
|
%0 = mul i64 %a, 40 ; <i64> [#uses=1]
|
|
ret i64 %0
|
|
}
|