[llvm-commits] [llvm] r120932 - in /llvm/trunk: lib/Target/X86/X86ISelLowering.cpp test/CodeGen/X86/select.ll
Chris Lattner
sabre at nondot.org
Sun Dec 5 14:52:26 PST 2010
On Dec 5, 2010, at 2:22 PM, Evan Cheng wrote:
>>
>> __Z4funcl: ## @_Z4funcl
>> movl $4, %ecx ## encoding: [0xb9,0x04,0x00,0x00,0x00]
>> movq %rdi, %rax ## encoding: [0x48,0x89,0xf8]
>> mulq %rcx ## encoding: [0x48,0xf7,0xe1]
>> cmpq $1, %rdx ## encoding: [0x48,0x83,0xfa,0x01]
>> sbbq %rdi, %rdi ## encoding: [0x48,0x19,0xff]
>> notq %rdi ## encoding: [0x48,0xf7,0xd7]
>> orq %rax, %rdi ## encoding: [0x48,0x09,0xc7]
>> jmp __Znam ## TAILCALL
>> ## encoding: [0xeb,A]
>
> Why is this an improvement?
cmov is high latency and generally bad, but this also helps if the other value is an imm or load, because those can be folded into orq but not into cmov.
-Chris
More information about the llvm-commits
mailing list