[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
Fri Sep 9 06:54:03 PDT 2022


deadalnix added inline comments.


================
Comment at: llvm/test/CodeGen/PowerPC/signbit-shift.ll:142
+; CHECK-NEXT:    li 3, 42
+; CHECK-NEXT:    isellt 3, 3, 4
 ; CHECK-NEXT:    blr
----------------
deadalnix wrote:
> shchenz wrote:
> > The changes in this file seem regressions, especially for this case, more instructions and more registers. Do we know why?
> Yes. The PowerPC backend request for select_cc instruction. The select_cc instruction is not turned into arythmetic the way regular select instructions are.
> 
> This patch changes how select -> arithmetic transformations are done, which enable more transform in general, but specifically on PowerPC, this cases problems because it causes either select_cc to not be generated due select -> arithmetic transformations, or, alternatively, if the promotion to select_cc is prioritized, then the cases where the arithmetic transform was beneficial are not done.
> 
> Do we have a good idea when select_cc -> arithmetic is beneficial? If we have something reasonable here, we can add the select_cc transforms and get these regression dealt with.
If you want to see the difference when one takes priority over the other: https://reviews.llvm.org/D131260?vs=458558&id=458561


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