Lines Matching refs:ShuffleMask

7452 static unsigned isNEONTwoResultShuffleMask(ArrayRef<int> ShuffleMask, EVT VT,  in isNEONTwoResultShuffleMask()  argument
7456 if (isVTRNMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7458 if (isVUZPMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7460 if (isVZIPMask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7464 if (isVTRN_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7466 if (isVUZP_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
7468 if (isVZIP_v_undef_Mask(ShuffleMask, VT, WhichResult)) in isNEONTwoResultShuffleMask()
8409 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEv8i8() argument
8417 for (int I : ShuffleMask) in LowerVECTOR_SHUFFLEv8i8()
8501 ArrayRef<int> ShuffleMask = SVN->getMask(); in LowerVECTOR_SHUFFLE_i1() local
8508 if (isReverseMask(ShuffleMask, VT)) { in LowerVECTOR_SHUFFLE_i1()
8529 DAG.getUNDEF(NewVT), ShuffleMask); in LowerVECTOR_SHUFFLE_i1()
8545 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEUsingMovs() argument
8564 auto getMovIdx = [](ArrayRef<int> ShuffleMask, int Start, int Length) { in LowerVECTOR_SHUFFLEUsingMovs() argument
8568 if (ShuffleMask[Start + i] >= 0) { in LowerVECTOR_SHUFFLEUsingMovs()
8569 if (ShuffleMask[Start + i] % Length != i) in LowerVECTOR_SHUFFLEUsingMovs()
8571 MovIdx = ShuffleMask[Start + i] / Length; in LowerVECTOR_SHUFFLEUsingMovs()
8580 if (ShuffleMask[Start + i] >= 0 && in LowerVECTOR_SHUFFLEUsingMovs()
8581 (ShuffleMask[Start + i] / Length != MovIdx || in LowerVECTOR_SHUFFLEUsingMovs()
8582 ShuffleMask[Start + i] % Length != i)) in LowerVECTOR_SHUFFLEUsingMovs()
8590 int Elt = getMovIdx(ShuffleMask, Part * QuarterSize, QuarterSize); in LowerVECTOR_SHUFFLEUsingMovs()
8614 Parts[Part] ? -1 : ShuffleMask[Part * QuarterSize + i]); in LowerVECTOR_SHUFFLEUsingMovs()
8631 ArrayRef<int> ShuffleMask, in LowerVECTOR_SHUFFLEUsingOneOff() argument
8662 if (isOneOffIdentityMask(ShuffleMask, VT, 0, OffElement)) in LowerVECTOR_SHUFFLEUsingOneOff()
8664 else if (isOneOffIdentityMask(ShuffleMask, VT, NumElts, OffElement)) in LowerVECTOR_SHUFFLEUsingOneOff()
8675 ShuffleMask[OffElement] < (int)NumElts ? V1 : V2, in LowerVECTOR_SHUFFLEUsingOneOff()
8676 DAG.getVectorIdxConstant(ShuffleMask[OffElement] % NumElts, dl)); in LowerVECTOR_SHUFFLEUsingOneOff()
8699 ArrayRef<int> ShuffleMask = SVN->getMask(); in LowerVECTOR_SHUFFLE() local
8731 if (ST->hasNEON() && isVEXTMask(ShuffleMask, VT, ReverseVEXT, Imm)) { in LowerVECTOR_SHUFFLE()
8738 if (isVREVMask(ShuffleMask, VT, 64)) in LowerVECTOR_SHUFFLE()
8740 if (isVREVMask(ShuffleMask, VT, 32)) in LowerVECTOR_SHUFFLE()
8742 if (isVREVMask(ShuffleMask, VT, 16)) in LowerVECTOR_SHUFFLE()
8745 if (ST->hasNEON() && V2->isUndef() && isSingletonVEXTMask(ShuffleMask, VT, Imm)) { in LowerVECTOR_SHUFFLE()
8759 ShuffleMask, VT, WhichResult, isV_UNDEF)) { in LowerVECTOR_SHUFFLE()
8767 if (isVMOVNMask(ShuffleMask, VT, false, false)) in LowerVECTOR_SHUFFLE()
8770 if (isVMOVNMask(ShuffleMask, VT, true, false)) in LowerVECTOR_SHUFFLE()
8773 if (isVMOVNMask(ShuffleMask, VT, true, true)) in LowerVECTOR_SHUFFLE()
8799 assert(llvm::all_of(ShuffleMask, [&](int i) { in LowerVECTOR_SHUFFLE()
8804 ShuffleMask, SubVT, WhichResult, isV_UNDEF)) { in LowerVECTOR_SHUFFLE()
8818 if (SDValue V = LowerVECTOR_SHUFFLEUsingOneOff(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()
8827 if (ShuffleMask[i] < 0) in LowerVECTOR_SHUFFLE()
8830 PFIndexes[i] = ShuffleMask[i]; in LowerVECTOR_SHUFFLE()
8863 if (ShuffleMask[i] < 0) in LowerVECTOR_SHUFFLE()
8867 ShuffleMask[i] < (int)NumElts ? V1 : V2, in LowerVECTOR_SHUFFLE()
8868 DAG.getConstant(ShuffleMask[i] & (NumElts-1), in LowerVECTOR_SHUFFLE()
8876 isReverseMask(ShuffleMask, VT)) in LowerVECTOR_SHUFFLE()
8880 if (SDValue NewOp = LowerVECTOR_SHUFFLEv8i8(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()
8884 if (SDValue NewOp = LowerVECTOR_SHUFFLEUsingMovs(Op, ShuffleMask, DAG)) in LowerVECTOR_SHUFFLE()