[llvm] [X86] Add ISD::VECREDUCE_MUL lowering instead of matching in DAG (PR #207593)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 6 02:06:31 PDT 2026


================
@@ -34351,6 +34355,7 @@ SDValue X86TargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const {
   case ISD::VECREDUCE_AND:
   case ISD::VECREDUCE_OR:
   case ISD::VECREDUCE_XOR:      return LowerVECREDUCE(Op, Subtarget, DAG, true);
+  case ISD::VECREDUCE_MUL:      return LowerVECREDUCE(Op, Subtarget, DAG, false);
----------------
RKSimon wrote:

I've moved to the default scalarisation - its better than I remember it (I was still fighting regressions when I made the change and didn't revisit it) - the only (minor) remaining regression is the pre-SSE4 vXi32 reductions - WDYT is it worth adding a special case for it?

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


More information about the llvm-commits mailing list