[PATCH] D63318: [DAGCombine] Teach DAGCombine to fold the aext + select pattern

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 14 08:17:42 PDT 2019


craig.topper added inline comments.


================
Comment at: llvm/test/CodeGen/X86/cmov-promotion.ll:130
+; CMOV-NEXT:    movl $4294967295, %eax # imm = 0xFFFFFFFF
+; CMOV-NEXT:    cmovneq %rcx, %rax
 ; CMOV-NEXT:    retq
----------------
steven.zhang wrote:
> craig.topper wrote:
> > This is slightly worse. Maybe don't do this when zext is free?
> I check the scheduling information for cmovneq and cmovnel, both latency are 1. I didn't catch the "slightly worse" you mean ... Could you explain it more, as I am new to X86 instr. Thank you!
Cmovneq’s encoding is 1 byte longer than cmovnel. The 64-bit size requires a REX prefix.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63318/new/

https://reviews.llvm.org/D63318





More information about the llvm-commits mailing list