[llvm] [AArch64][GlobalISel] Legalize 128-bit types for FABS (PR #104753)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 19 03:34:44 PDT 2024
================
@@ -257,6 +257,20 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
.clampNumElements(0, v2s64, v2s64)
.moreElementsToNextPow2(0);
+ getActionDefinitionsBuilder(G_FABS)
+ .legalFor({MinFPScalar, s32, s64, v2s32, v4s32, v2s64})
+ .legalIf([=](const LegalityQuery &Query) {
+ const auto &Ty = Query.Types[0];
+ return (Ty == v8s16 || Ty == v4s16) && HasFP16;
+ })
+ .customFor({s128})
----------------
davemgreen wrote:
Would it possible to make it lowerIf and have the generic LegalizerHelper::lower handle the expansion into an AND? It should be very similar code I hope (maybe generalized to more types), but could be useful to other targets / fp types too. FP16 without +fullfp16 might be able to use it, for example.
https://github.com/llvm/llvm-project/pull/104753
More information about the llvm-commits
mailing list