Lines Matching refs:ShuffleMask
7351 static unsigned isNEONTwoResultShuffleMask(ArrayRef<int> ShuffleMask, EVT VT, in isNEONTwoResultShuffleMask() argument
7355 if (isVTRNMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7357 if (isVUZPMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7359 if (isVZIPMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7363 if (isVTRN_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7365 if (isVUZP_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7367 if (isVZIP_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
8251 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEv8i8() argument
8260 I = ShuffleMask.begin(), E = ShuffleMask.end(); I != E; ++I) in LowerVECTOR_SHUFFLEv8i8()
8340 ArrayRef<int> ShuffleMask = SVN->getMask(); in LowerVECTOR_SHUFFLE_i1() local
8347 if (isReverseMask(ShuffleMask, VT)) { in LowerVECTOR_SHUFFLE_i1()
8368 DAG.getUNDEF(NewVT), ShuffleMask); in LowerVECTOR_SHUFFLE_i1()
8377 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEUsingMovs() argument
8396 auto getMovIdx = [](ArrayRef<int> ShuffleMask, int Start, int Length) { in LowerVECTOR_SHUFFLEUsingMovs() argument
8400 if (ShuffleMask[Start + i] >= 0) { in LowerVECTOR_SHUFFLEUsingMovs()
8401 if (ShuffleMask[Start + i] % Length != i) in LowerVECTOR_SHUFFLEUsingMovs()
8403 MovIdx = ShuffleMask[Start + i] / Length; in LowerVECTOR_SHUFFLEUsingMovs()
8412 if (ShuffleMask[Start + i] >= 0 && in LowerVECTOR_SHUFFLEUsingMovs()
8413 (ShuffleMask[Start + i] / Length != MovIdx || in LowerVECTOR_SHUFFLEUsingMovs()
8414 ShuffleMask[Start + i] % Length != i)) in LowerVECTOR_SHUFFLEUsingMovs()
8422 int Elt = getMovIdx(ShuffleMask, Part * QuarterSize, QuarterSize); in LowerVECTOR_SHUFFLEUsingMovs()
8446 Parts[Part] ? -1 : ShuffleMask[Part * QuarterSize + i]); in LowerVECTOR_SHUFFLEUsingMovs()
8463 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEUsingOneOff() argument
8494 if (isOneOffIdentityMask(ShuffleMask, VT, 0, OffElement)) in LowerVECTOR_SHUFFLEUsingOneOff()
8496 else if (isOneOffIdentityMask(ShuffleMask, VT, NumElts, OffElement)) in LowerVECTOR_SHUFFLEUsingOneOff()
8507 ShuffleMask[OffElement] < (int)NumElts ? V1 : V2, in LowerVECTOR_SHUFFLEUsingOneOff()
8508 DAG.getVectorIdxConstant(ShuffleMask[OffElement] % NumElts, dl)); in LowerVECTOR_SHUFFLEUsingOneOff()
8531 ArrayRef<int> ShuffleMask = SVN->getMask(); in LowerVECTOR_SHUFFLE() local
8563 if (ST->hasNEON() && isVEXTMask(ShuffleMask, VT, ReverseVEXT, Imm)) { in LowerVECTOR_SHUFFLE()
8570 if (isVREVMask(ShuffleMask, VT, 64)) in LowerVECTOR_SHUFFLE()
8572 if (isVREVMask(ShuffleMask, VT, 32)) in LowerVECTOR_SHUFFLE()
8574 if (isVREVMask(ShuffleMask, VT, 16)) in LowerVECTOR_SHUFFLE()
8577 if (ST->hasNEON() && V2->isUndef() && isSingletonVEXTMask(ShuffleMask, VT, Imm)) { in LowerVECTOR_SHUFFLE()
8591 ShuffleMask, VT, WhichResult, isV_UNDEF)) { in LowerVECTOR_SHUFFLE()
8599 if (isVMOVNMask(ShuffleMask, VT, false, false)) in LowerVECTOR_SHUFFLE()
8602 if (isVMOVNMask(ShuffleMask, VT, true, false)) in LowerVECTOR_SHUFFLE()
8605 if (isVMOVNMask(ShuffleMask, VT, true, true)) in LowerVECTOR_SHUFFLE()
8631 assert(llvm::all_of(ShuffleMask, [&](int i) { in LowerVECTOR_SHUFFLE()
8636 ShuffleMask, SubVT, WhichResult, isV_UNDEF)) { in LowerVECTOR_SHUFFLE()
8650 if (SDValue V = LowerVECTOR_SHUFFLEUsingOneOff(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()
8659 if (ShuffleMask[i] < 0) in LowerVECTOR_SHUFFLE()
8662 PFIndexes[i] = ShuffleMask[i]; in LowerVECTOR_SHUFFLE()
8695 if (ShuffleMask[i] < 0) in LowerVECTOR_SHUFFLE()
8699 ShuffleMask[i] < (int)NumElts ? V1 : V2, in LowerVECTOR_SHUFFLE()
8700 DAG.getConstant(ShuffleMask[i] & (NumElts-1), in LowerVECTOR_SHUFFLE()
8707 if (ST->hasNEON() && (VT == MVT::v8i16 || VT == MVT::v16i8) && isReverseMask(ShuffleMask, VT)) in LowerVECTOR_SHUFFLE()
8711 if (SDValue NewOp = LowerVECTOR_SHUFFLEv8i8(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()
8715 if (SDValue NewOp = LowerVECTOR_SHUFFLEUsingMovs(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()