@@ -3377,11 +3377,11 @@ class BoUpSLP {
33773377 /// (either with vector instruction or with scatter/gather
33783378 /// intrinsics for store/load)?
33793379 enum EntryState {
3380- Vectorize, ///< The node is regularly vectorized.
3381- ScatterVectorize, ///< Masked scatter/gather node.
3382- StridedVectorize, ///< Strided loads (and stores)
3380+ Vectorize, ///< The node is regularly vectorized.
3381+ ScatterVectorize, ///< Masked scatter/gather node.
3382+ StridedVectorize, ///< Strided loads (and stores)
33833383 MaskedLoadCompressVectorize, ///< Masked load with compress.
3384- NeedToGather, ///< Gather/buildvector node.
3384+ NeedToGather, ///< Gather/buildvector node.
33853385 CombinedVectorize, ///< Vectorized node, combined with its user into more
33863386 ///< complex node like select/cmp to minmax, mul/add to
33873387 ///< fma, etc. Must be used for the following nodes in
@@ -5489,7 +5489,7 @@ BoUpSLP::canVectorizeLoads(ArrayRef<Value *> VL, const Value *VL0,
54895489 [[maybe_unused]] bool IsMasked;
54905490 [[maybe_unused]] unsigned InterleaveFactor;
54915491 [[maybe_unused]] SmallVector<int> CompressMask;
5492- [[maybe_unused]] VectorType *LoadVecTy;;
5492+ [[maybe_unused]] VectorType *LoadVecTy;
54935493 if (isMaskedLoadCompress(
54945494 VL, PointerOps, Order, *TTI, *DL, *SE, *AC, *DT, *TLI,
54955495 [&](Value *V) {
@@ -7902,31 +7902,30 @@ void BoUpSLP::tryToVectorizeGatheredLoads(
79027902 // just exit.
79037903 unsigned ConsecutiveNodesSize = 0;
79047904 if (!LoadEntriesToVectorize.empty() && InterleaveFactor == 0 &&
7905- any_of(
7906- zip(LoadEntriesToVectorize, LoadSetsToVectorize),
7907- [&, Slice = Slice](const auto &P) {
7908- const auto *It = find_if(Slice, [&](Value *V) {
7909- return std::get<1>(P).contains(V);
7910- });
7911- if (It == Slice.end())
7912- return false;
7913- const TreeEntry &TE = *VectorizableTree[std::get<0>(P)];
7914- ArrayRef<Value *> VL = TE.Scalars;
7915- OrdersType Order;
7916- SmallVector<Value *> PointerOps;
7917- LoadsState State =
7918- canVectorizeLoads(VL, VL.front(), Order,
7919- PointerOps);
7920- if (State == LoadsState::ScatterVectorize||
7921- State == LoadsState::MaskedLoadCompressVectorize)
7922- return false;
7923- ConsecutiveNodesSize += VL.size();
7924- unsigned Start = std::distance(Slice.begin(), It);
7925- unsigned Sz = Slice.size() - Start;
7926- return Sz < VL.size() ||
7927- Slice.slice(std::distance(Slice.begin(), It),
7928- VL.size()) != VL;
7929- }))
7905+ any_of(zip(LoadEntriesToVectorize, LoadSetsToVectorize),
7906+ [&, Slice = Slice](const auto &P) {
7907+ const auto *It = find_if(Slice, [&](Value *V) {
7908+ return std::get<1>(P).contains(V);
7909+ });
7910+ if (It == Slice.end())
7911+ return false;
7912+ const TreeEntry &TE =
7913+ *VectorizableTree[std::get<0>(P)];
7914+ ArrayRef<Value *> VL = TE.Scalars;
7915+ OrdersType Order;
7916+ SmallVector<Value *> PointerOps;
7917+ LoadsState State = canVectorizeLoads(
7918+ VL, VL.front(), Order, PointerOps);
7919+ if (State == LoadsState::ScatterVectorize ||
7920+ State == LoadsState::MaskedLoadCompressVectorize)
7921+ return false;
7922+ ConsecutiveNodesSize += VL.size();
7923+ unsigned Start = std::distance(Slice.begin(), It);
7924+ unsigned Sz = Slice.size() - Start;
7925+ return Sz < VL.size() ||
7926+ Slice.slice(std::distance(Slice.begin(), It),
7927+ VL.size()) != VL;
7928+ }))
79307929 continue;
79317930 // Try to build long masked gather loads.
79327931 UserMaxVF = bit_ceil(UserMaxVF);
@@ -12664,8 +12663,8 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef<Value *> VectorizedVals,
1266412663 assert(IsVectorized && "Expected to be vectorized");
1266512664 Align CommonAlignment;
1266612665 if (IsMasked)
12667- CommonAlignment = computeCommonAlignment<LoadInst>(
12668- UniqueValues.getArrayRef());
12666+ CommonAlignment =
12667+ computeCommonAlignment<LoadInst>( UniqueValues.getArrayRef());
1266912668 else
1267012669 CommonAlignment = LI0->getAlign();
1267112670 if (InterleaveFactor) {
0 commit comments