Skip to content

Commit cc15380

Browse files
committed
[X86][SSE] combineTargetShuffle - use scaleShuffleMask helper to widen shuffle mask. NFCI.
Use scaleShuffleMask helper for the shuffle(hadd,hadd) canonicalization.
1 parent 44b260c commit cc15380

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35921,14 +35921,8 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG,
3592135921
SmallVector<int, 16> TargetMask128;
3592235922
if (!TargetMask.empty() && 0 < TargetOps.size() && TargetOps.size() <= 2 &&
3592335923
isRepeatedTargetShuffleMask(128, VT, TargetMask, TargetMask128)) {
35924-
SmallVector<int, 16> WidenedMask128 = TargetMask128;
35925-
while (WidenedMask128.size() > 2) {
35926-
SmallVector<int, 16> WidenedMask;
35927-
if (!canWidenShuffleElements(WidenedMask128, WidenedMask))
35928-
break;
35929-
WidenedMask128 = std::move(WidenedMask);
35930-
}
35931-
if (WidenedMask128.size() == 2) {
35924+
SmallVector<int, 16> WidenedMask128;
35925+
if (scaleShuffleElements(TargetMask128, 2, WidenedMask128)) {
3593235926
assert(isUndefOrZeroOrInRange(WidenedMask128, 0, 4) && "Illegal shuffle");
3593335927
SDValue BC0 = peekThroughBitcasts(TargetOps.front());
3593435928
SDValue BC1 = peekThroughBitcasts(TargetOps.back());

0 commit comments

Comments
 (0)