Skip to content

Commit 6b79cb6

Browse files
committed
Convert inlane shuffle check to lambda
1 parent 2d889d4 commit 6b79cb6

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

llvm/lib/Target/X86/X86TargetTransformInfo.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1567,13 +1567,12 @@ InstructionCost X86TTIImpl::getShuffleCost(
15671567
Mask.size() == BaseTp->getElementCount().getKnownMinValue()) {
15681568
unsigned NumLanes = BaseTp->getPrimitiveSizeInBits() / 128;
15691569
unsigned NumEltsPerLane = Mask.size() / NumLanes;
1570-
if ((Mask.size() % NumLanes) == 0) {
1571-
IsInLaneShuffle = true;
1572-
for (auto [I, M] : enumerate(Mask))
1573-
if (0 <= M)
1574-
IsInLaneShuffle &=
1575-
((M % Mask.size()) / NumEltsPerLane) == (I / NumEltsPerLane);
1576-
}
1570+
if ((Mask.size() % NumLanes) == 0)
1571+
IsInLaneShuffle = all_of(enumerate(Mask), [&](const auto &P) {
1572+
return P.value() == PoisonMaskElem ||
1573+
((P.value() % Mask.size()) / NumEltsPerLane) ==
1574+
(P.index() / NumEltsPerLane);
1575+
});
15771576
}
15781577

15791578
// Treat <X x bfloat> shuffles as <X x half>.

0 commit comments

Comments
 (0)