[llvm] [AArch64][GlobalISel] Legalize 128-bit types for FABS (PR #104753)

Thorsten Schütt via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 20 09:00:23 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;
+      })
+      .lowerFor({s128})
+      .scalarizeIf(scalarOrEltWiderThan(0, 64), 0)
----------------
tschuett wrote:

Do you need the `scalarizeIf` when `lowerFAbs` supports vectors?

https://github.com/llvm/llvm-project/pull/104753


More information about the llvm-commits mailing list