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

via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 23 02:02:56 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)
----------------
Him188 wrote:

Unfortunately G_AND does not yet support 128-bit types so let's keep the `scalarizeIf` with a comment.

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


More information about the llvm-commits mailing list