================ @@ -512,7 +518,17 @@ void VPInstruction::execute(VPTransformState &State) { if (!hasResult()) continue; assert(GeneratedValue && "generateInstruction must produce a value"); - State.set(this, GeneratedValue, Part); + if (GeneratedValue->getType()->isVectorTy()) + State.set(this, GeneratedValue, Part); + else { + if (getOpcode() == VPInstruction::ComputeReductionResult) { + State.set(this, GeneratedValue, VPIteration(Part, 0)); + } else { + assert((State.VF.isScalar() || vputils::onlyFirstLaneUsed(this)) && + "scalar value but not only first lane used"); + State.set(this, GeneratedValue, VPIteration(Part, 0)); ---------------- ayalz wrote:
nit: can simplify into a single State.set() with the condition folded into the assert. https://github.com/llvm/llvm-project/pull/80271 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits