[llvm] [AArch64][GlobalISel] Take abs scalar codegen closer to SDAG (PR #84886)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 19 02:08:24 PDT 2024
================
@@ -3914,8 +3914,12 @@ LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT LowerHintTy) {
case G_SSHLSAT:
case G_USHLSAT:
return lowerShlSat(MI);
- case G_ABS:
+ case G_ABS: {
+ LLT Ty = MRI.getType(MI.getOperand(0).getReg());
+ if (Ty.isScalar() && LI.isLegalOrCustom({G_ICMP, {Ty, Ty}}))
+ return lowerAbsToCNeg(MI);
----------------
davemgreen wrote:
I personally don't know if there is a good check that captures what we would want through the isLegalOrCustom interface. I think many targets would want the ashr/AddXor form even if they have legal sub+sel. I would remove this code and just keep the AArch64LegalizerInfo::legalizeCustom method.
https://github.com/llvm/llvm-project/pull/84886
More information about the llvm-commits
mailing list