@@ -1623,30 +1623,8 @@ void VPlanTransforms::truncateToMinimalBitwidths(
16231623 // type. Skip those here, after incrementing NumProcessedRecipes. Also
16241624 // skip casts which do not need to be handled explicitly here, as
16251625 // redundant casts will be removed during recipe simplification.
1626- if (isa<VPReplicateRecipe, VPWidenCastRecipe>(&R)) {
1627- #ifndef NDEBUG
1628- // If any of the operands is a live-in and not used by VPWidenRecipe or
1629- // VPWidenSelectRecipe, but in MinBWs, make sure it is counted as
1630- // processed as well. When MinBWs is currently constructed, there is no
1631- // information about whether recipes are widened or replicated and in
1632- // case they are reciplicated the operands are not truncated. Counting
1633- // them them here ensures we do not miss any recipes in MinBWs.
1634- // TODO: Remove once the analysis is done on VPlan.
1635- for (VPValue *Op : R.operands ()) {
1636- if (!Op->isLiveIn ())
1637- continue ;
1638- auto *UV = dyn_cast_or_null<Instruction>(Op->getUnderlyingValue ());
1639- if (UV && MinBWs.contains (UV) && !ProcessedTruncs.contains (Op) &&
1640- none_of (Op->users (),
1641- IsaPred<VPWidenRecipe, VPWidenSelectRecipe>)) {
1642- // Add an entry to ProcessedTruncs to avoid counting the same
1643- // operand multiple times.
1644- ProcessedTruncs[Op] = nullptr ;
1645- }
1646- }
1647- #endif
1626+ if (isa<VPReplicateRecipe, VPWidenCastRecipe>(&R))
16481627 continue ;
1649- }
16501628
16511629 Type *OldResTy = TypeInfo.inferScalarType (ResultVPV);
16521630 unsigned OldResSizeInBits = OldResTy->getScalarSizeInBits ();
0 commit comments