Lines Matching defs:ShuffleMask

7585 /// Check if \p ShuffleMask is a NEON two-result shuffle (VZIP, VUZP, VTRN),
7587 static unsigned isNEONTwoResultShuffleMask(ArrayRef<int> ShuffleMask, EVT VT,
7591 if (isVTRNMask(ShuffleMask, VT, WhichResult))
7593 if (isVUZPMask(ShuffleMask, VT, WhichResult))
7595 if (isVZIPMask(ShuffleMask, VT, WhichResult))
7599 if (isVTRN_v_undef_Mask(ShuffleMask, VT, WhichResult))
7601 if (isVUZP_v_undef_Mask(ShuffleMask, VT, WhichResult))
7603 if (isVZIP_v_undef_Mask(ShuffleMask, VT, WhichResult))
8569 ArrayRef<int> ShuffleMask,
8577 for (int I : ShuffleMask)
8661 ArrayRef<int> ShuffleMask = SVN->getMask();
8669 if (isReverseMask(ShuffleMask, VT)) {
8694 PredAsVector2, ShuffleMask);
8710 ArrayRef<int> ShuffleMask,
8729 auto getMovIdx = [](ArrayRef<int> ShuffleMask, int Start, int Length) {
8733 if (ShuffleMask[Start + i] >= 0) {
8734 if (ShuffleMask[Start + i] % Length != i)
8736 MovIdx = ShuffleMask[Start + i] / Length;
8745 if (ShuffleMask[Start + i] >= 0 &&
8746 (ShuffleMask[Start + i] / Length != MovIdx ||
8747 ShuffleMask[Start + i] % Length != i))
8755 int Elt = getMovIdx(ShuffleMask, Part * QuarterSize, QuarterSize);
8779 Parts[Part] ? -1 : ShuffleMask[Part * QuarterSize + i]);
8796 ArrayRef<int> ShuffleMask,
8827 if (isOneOffIdentityMask(ShuffleMask, VT, 0, OffElement))
8829 else if (isOneOffIdentityMask(ShuffleMask, VT, NumElts, OffElement))
8840 ShuffleMask[OffElement] < (int)NumElts ? V1 : V2,
8841 DAG.getVectorIdxConstant(ShuffleMask[OffElement] % NumElts, dl));
8864 ArrayRef<int> ShuffleMask = SVN->getMask();
8896 if (ST->hasNEON() && isVEXTMask(ShuffleMask, VT, ReverseVEXT, Imm)) {
8903 if (isVREVMask(ShuffleMask, VT, 64))
8905 if (isVREVMask(ShuffleMask, VT, 32))
8907 if (isVREVMask(ShuffleMask, VT, 16))
8910 if (ST->hasNEON() && V2->isUndef() && isSingletonVEXTMask(ShuffleMask, VT, Imm)) {
8924 ShuffleMask, VT, WhichResult, isV_UNDEF)) {
8932 if (isVMOVNMask(ShuffleMask, VT, false, false))
8935 if (isVMOVNMask(ShuffleMask, VT, true, false))
8938 if (isVMOVNMask(ShuffleMask, VT, true, true))
8964 assert(llvm::all_of(ShuffleMask, [&](int i) {
8969 ShuffleMask, SubVT, WhichResult, isV_UNDEF)) {
8983 if (SDValue V = LowerVECTOR_SHUFFLEUsingOneOff(Op, ShuffleMask, DAG))
8988 if (isTruncMask(ShuffleMask, VT, Top, SingleSource)) {
8990 MVT FromVT = MVT::getVectorVT(FromSVT, ShuffleMask.size() / 2);
9011 if (ShuffleMask[i] < 0)
9014 PFIndexes[i] = ShuffleMask[i];
9047 if (ShuffleMask[i] < 0)
9051 ShuffleMask[i] < (int)NumElts ? V1 : V2,
9052 DAG.getConstant(ShuffleMask[i] & (NumElts-1),
9060 isReverseMask(ShuffleMask, VT))
9064 if (SDValue NewOp = LowerVECTOR_SHUFFLEv8i8(Op, ShuffleMask, DAG))
9068 if (SDValue NewOp = LowerVECTOR_SHUFFLEUsingMovs(Op, ShuffleMask, DAG))