[llvm] cc15380 - [X86][SSE] combineTargetShuffle - use scaleShuffleMask helper to widen shuffle mask. NFCI.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 8 11:36:45 PDT 2020
Author: Simon Pilgrim
Date: 2020-08-08T19:36:18+01:00
New Revision: cc15380f103f09bc447cd3f22bcdbedca7447b97
URL: https://github.com/llvm/llvm-project/commit/cc15380f103f09bc447cd3f22bcdbedca7447b97
DIFF: https://github.com/llvm/llvm-project/commit/cc15380f103f09bc447cd3f22bcdbedca7447b97.diff
LOG: [X86][SSE] combineTargetShuffle - use scaleShuffleMask helper to widen shuffle mask. NFCI.
Use scaleShuffleMask helper for the shuffle(hadd,hadd) canonicalization.
Added:
Modified:
llvm/lib/Target/X86/X86ISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index b8e7026d1ca4..0056b392705b 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -35921,14 +35921,8 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG,
SmallVector<int, 16> TargetMask128;
if (!TargetMask.empty() && 0 < TargetOps.size() && TargetOps.size() <= 2 &&
isRepeatedTargetShuffleMask(128, VT, TargetMask, TargetMask128)) {
- SmallVector<int, 16> WidenedMask128 = TargetMask128;
- while (WidenedMask128.size() > 2) {
- SmallVector<int, 16> WidenedMask;
- if (!canWidenShuffleElements(WidenedMask128, WidenedMask))
- break;
- WidenedMask128 = std::move(WidenedMask);
- }
- if (WidenedMask128.size() == 2) {
+ SmallVector<int, 16> WidenedMask128;
+ if (scaleShuffleElements(TargetMask128, 2, WidenedMask128)) {
assert(isUndefOrZeroOrInRange(WidenedMask128, 0, 4) && "Illegal shuffle");
SDValue BC0 = peekThroughBitcasts(TargetOps.front());
SDValue BC1 = peekThroughBitcasts(TargetOps.back());
More information about the llvm-commits
mailing list