[llvm] [AArch64][ISel] Lower fixed-width i64 vector CLMUL intrinsics (PR #178876)
Matthew Devereau via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 6 05:12:39 PST 2026
================
@@ -11795,6 +11795,19 @@ let Predicates = [HasTEV] in {
defm TEXIT : TEXIT<"texit">;
}
+// Patterns for v2i64/v1i64 clmul->pmull
+def : Pat<(clmul v1i64:$Rn, v1i64:$Rd),
+ (v1i64 (EXTRACT_SUBREG (v16i8 (PMULLv1i64 $Rn, $Rd)),
+ (i32 3)))>;
+
+def : Pat<(clmul v2i64:$Rn, v2i64:$Rd),
+ (v2i64 (INSvi64lane (v16i8 (PMULLv1i64 (v1i64 (EXTRACT_SUBREG $Rn, (i32 3))),
----------------
MDevereau wrote:
I've done the dsub change but left the overall pattern structure. I wasn't sure if you want me to try and remove the insert still, or just leave it as is.
https://github.com/llvm/llvm-project/pull/178876
More information about the llvm-commits
mailing list