Lines Matching refs:ShuffleMask
7556 static unsigned isNEONTwoResultShuffleMask(ArrayRef<int> ShuffleMask, EVT VT, in isNEONTwoResultShuffleMask() argument
7560 if (isVTRNMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7562 if (isVUZPMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7564 if (isVZIPMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7568 if (isVTRN_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7570 if (isVUZP_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7572 if (isVZIP_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
8536 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEv8i8() argument
8544 for (int I : ShuffleMask) in LowerVECTOR_SHUFFLEv8i8()
8628 ArrayRef<int> ShuffleMask = SVN->getMask(); in LowerVECTOR_SHUFFLE_i1() local
8636 if (isReverseMask(ShuffleMask, VT)) { in LowerVECTOR_SHUFFLE_i1()
8661 PredAsVector2, ShuffleMask); in LowerVECTOR_SHUFFLE_i1()
8677 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEUsingMovs() argument
8696 auto getMovIdx = [](ArrayRef<int> ShuffleMask, int Start, int Length) { in LowerVECTOR_SHUFFLEUsingMovs() argument
8700 if (ShuffleMask[Start + i] >= 0) { in LowerVECTOR_SHUFFLEUsingMovs()
8701 if (ShuffleMask[Start + i] % Length != i) in LowerVECTOR_SHUFFLEUsingMovs()
8703 MovIdx = ShuffleMask[Start + i] / Length; in LowerVECTOR_SHUFFLEUsingMovs()
8712 if (ShuffleMask[Start + i] >= 0 && in LowerVECTOR_SHUFFLEUsingMovs()
8713 (ShuffleMask[Start + i] / Length != MovIdx || in LowerVECTOR_SHUFFLEUsingMovs()
8714 ShuffleMask[Start + i] % Length != i)) in LowerVECTOR_SHUFFLEUsingMovs()
8722 int Elt = getMovIdx(ShuffleMask, Part * QuarterSize, QuarterSize); in LowerVECTOR_SHUFFLEUsingMovs()
8746 Parts[Part] ? -1 : ShuffleMask[Part * QuarterSize + i]); in LowerVECTOR_SHUFFLEUsingMovs()
8763 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEUsingOneOff() argument
8794 if (isOneOffIdentityMask(ShuffleMask, VT, 0, OffElement)) in LowerVECTOR_SHUFFLEUsingOneOff()
8796 else if (isOneOffIdentityMask(ShuffleMask, VT, NumElts, OffElement)) in LowerVECTOR_SHUFFLEUsingOneOff()
8807 ShuffleMask[OffElement] < (int)NumElts ? V1 : V2, in LowerVECTOR_SHUFFLEUsingOneOff()
8808 DAG.getVectorIdxConstant(ShuffleMask[OffElement] % NumElts, dl)); in LowerVECTOR_SHUFFLEUsingOneOff()
8831 ArrayRef<int> ShuffleMask = SVN->getMask(); in LowerVECTOR_SHUFFLE() local
8863 if (ST->hasNEON() && isVEXTMask(ShuffleMask, VT, ReverseVEXT, Imm)) { in LowerVECTOR_SHUFFLE()
8870 if (isVREVMask(ShuffleMask, VT, 64)) in LowerVECTOR_SHUFFLE()
8872 if (isVREVMask(ShuffleMask, VT, 32)) in LowerVECTOR_SHUFFLE()
8874 if (isVREVMask(ShuffleMask, VT, 16)) in LowerVECTOR_SHUFFLE()
8877 if (ST->hasNEON() && V2->isUndef() && isSingletonVEXTMask(ShuffleMask, VT, Imm)) { in LowerVECTOR_SHUFFLE()
8891 ShuffleMask, VT, WhichResult, isV_UNDEF)) { in LowerVECTOR_SHUFFLE()
8899 if (isVMOVNMask(ShuffleMask, VT, false, false)) in LowerVECTOR_SHUFFLE()
8902 if (isVMOVNMask(ShuffleMask, VT, true, false)) in LowerVECTOR_SHUFFLE()
8905 if (isVMOVNMask(ShuffleMask, VT, true, true)) in LowerVECTOR_SHUFFLE()
8931 assert(llvm::all_of(ShuffleMask, [&](int i) { in LowerVECTOR_SHUFFLE()
8936 ShuffleMask, SubVT, WhichResult, isV_UNDEF)) { in LowerVECTOR_SHUFFLE()
8950 if (SDValue V = LowerVECTOR_SHUFFLEUsingOneOff(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()
8955 if (isTruncMask(ShuffleMask, VT, Top, SingleSource)) { in LowerVECTOR_SHUFFLE()
8957 MVT FromVT = MVT::getVectorVT(FromSVT, ShuffleMask.size() / 2); in LowerVECTOR_SHUFFLE()
8978 if (ShuffleMask[i] < 0) in LowerVECTOR_SHUFFLE()
8981 PFIndexes[i] = ShuffleMask[i]; in LowerVECTOR_SHUFFLE()
9014 if (ShuffleMask[i] < 0) in LowerVECTOR_SHUFFLE()
9018 ShuffleMask[i] < (int)NumElts ? V1 : V2, in LowerVECTOR_SHUFFLE()
9019 DAG.getConstant(ShuffleMask[i] & (NumElts-1), in LowerVECTOR_SHUFFLE()
9027 isReverseMask(ShuffleMask, VT)) in LowerVECTOR_SHUFFLE()
9031 if (SDValue NewOp = LowerVECTOR_SHUFFLEv8i8(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()
9035 if (SDValue NewOp = LowerVECTOR_SHUFFLEUsingMovs(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()