[llvm] [RISCV] Use ISD::XOR instead of RISCVISD::VMXOR_VL in lowerVectorMaskVecReduction of scalable ISD::VECREDUCE_AND (PR #121812)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 6 13:31:09 PST 2025


================
@@ -10154,7 +10154,10 @@ SDValue RISCVTargetLowering::lowerVectorMaskVecReduction(SDValue Op,
   case ISD::VP_REDUCE_AND: {
     // vcpop ~x == 0
     SDValue TrueMask = DAG.getNode(RISCVISD::VMSET_VL, DL, ContainerVT, VL);
-    Vec = DAG.getNode(RISCVISD::VMXOR_VL, DL, ContainerVT, Vec, TrueMask, VL);
+    if (IsVP || VecVT.isFixedLengthVector())
----------------
topperc wrote:

It caused an extra vtype toggle for fixed vectors. I didn't dig any further.

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


More information about the llvm-commits mailing list