[PATCH] D131260: [DAG] select Cond, -1, C --> or (sext Cond), C if Cond is MVT::i1

Amaury SECHET via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 7 07:37:30 PDT 2022


deadalnix added inline comments.


================
Comment at: llvm/test/CodeGen/X86/select_const.ll:289
+; CHECK-NEXT:    negl %eax
+; CHECK-NEXT:    orl $3, %eax
 ; CHECK-NEXT:    # kill: def $ax killed $ax killed $eax
----------------
deadalnix wrote:
> deadalnix wrote:
> > TODO: (sext Cond) | (Pow2 - 1) -> Pow2 - (zext (not Cond)) ?
> > 
> > Maybe if inverting Cond if for free? Is there a way to check for this?
> > 
> > Or maybe this is best reserved for `X86DAGToDAGISel::matchAddressRecursively`?
> I meant (sext Cond) | (Pow2 - 1) -> (zext (not Cond)) * Pow2 - 1 ?
Doing it in selectLEAAddr doesn't work as the score doesn't get high enough.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D131260



More information about the llvm-commits mailing list