[llvm] [AArch64] Lower and price partial reductions without dotprod (PR #214636)

Adam Scott via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 10 23:03:53 PDT 2026


================
@@ -19082,6 +19095,12 @@ bool AArch64TargetLowering::optimizeExtendOrTruncateConversion(
                       m_Intrinsic<Intrinsic::vector_partial_reduce_add>(
                           m_Value(), m_Specific(I))))
               return true;
+            if (match(SingleUser,
+                      m_c_Mul(m_Specific(I), m_ZExtOrSExt(m_Value()))) &&
+                SingleUser->hasOneUse() &&
+                match(SingleUser->user_back(),
+                      m_Intrinsic<Intrinsic::vector_partial_reduce_add>()))
+              return true;
----------------
as4230 wrote:

For dotprod capable targets yes. I think base neon regresses a bit without the pairwise lowering that is also in this PR b/c it would become a ushll chain so they may need to stay together. Thanks for the godbolt though, I'll take another look.

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


More information about the llvm-commits mailing list