File tree Expand file tree Collapse file tree 1 file changed +8
-10
lines changed
llvm/lib/Transforms/Vectorize Expand file tree Collapse file tree 1 file changed +8
-10
lines changed Original file line number Diff line number Diff line change @@ -2067,24 +2067,22 @@ static VPSingleDefRecipe *findHeaderMask(VPlan &Plan) {
20672067 WideCanonicalIVs.push_back (WidenOriginalIV);
20682068 }
20692069
2070- // Walk users of wide canonical IVs and collect to all compares of the form
2070+ // Walk users of wide canonical IVs and find the single compare of the form
20712071 // (ICMP_ULE, WideCanonicalIV, backedge-taken-count).
2072- SmallVector< VPSingleDefRecipe *> HeaderMasks ;
2072+ VPSingleDefRecipe *HeaderMask = nullptr ;
20732073 for (auto *Wide : WideCanonicalIVs) {
20742074 for (VPUser *U : SmallVector<VPUser *>(Wide->users ())) {
2075- auto *HeaderMask = dyn_cast<VPInstruction>(U);
2076- if (!HeaderMask || !vputils::isHeaderMask (HeaderMask , Plan))
2075+ auto *VPI = dyn_cast<VPInstruction>(U);
2076+ if (!VPI || !vputils::isHeaderMask (VPI , Plan))
20772077 continue ;
20782078
2079- assert (HeaderMask ->getOperand (0 ) == Wide &&
2079+ assert (VPI ->getOperand (0 ) == Wide &&
20802080 " WidenCanonicalIV must be the first operand of the compare" );
2081- HeaderMasks.push_back (HeaderMask);
2081+ assert (!HeaderMask && " Multiple header masks found?" );
2082+ HeaderMask = VPI;
20822083 }
20832084 }
2084- assert (HeaderMasks.size () <= 1 && " Multiple header masks found?" );
2085- if (HeaderMasks.empty ())
2086- return nullptr ;
2087- return HeaderMasks[0 ];
2085+ return HeaderMask;
20882086}
20892087
20902088void VPlanTransforms::addActiveLaneMask (
You can’t perform that action at this time.
0 commit comments