Lines Matching defs:ShuffleVT
8686 MVT ShuffleVT = VT;
8767 ShuffleVT = MVT::v16i8;
8774 ShuffleVT = MVT::v4f32;
8777 ShuffleVT = MVT::v16i8;
8786 ShuffleVT = MVT::v2f64;
8922 assert((VT.getSizeInBits() == ShuffleVT.getSizeInBits()) &&
8923 (VT.getScalarSizeInBits() % ShuffleVT.getScalarSizeInBits()) == 0 &&
8926 uint64_t Scale = VT.getScalarSizeInBits() / ShuffleVT.getScalarSizeInBits();
8930 EVT ShuffleIdxVT = EVT(ShuffleVT).changeVectorElementTypeToInteger();
8933 SrcVec = DAG.getBitcast(ShuffleVT, SrcVec);
8935 ? DAG.getNode(Opcode, DL, ShuffleVT, IndicesVec, SrcVec)
8936 : DAG.getNode(Opcode, DL, ShuffleVT, SrcVec, IndicesVec);
14394 MVT ShuffleVT = VT;
14398 ShuffleVT = V1.getSimpleValueType();
14415 Result = DAG.getNode(X86ISD::VPERMV, DL, ShuffleVT, MaskNode, V1);
14417 Result = DAG.getNode(X86ISD::VPERMV3, DL, ShuffleVT, V1, MaskNode, V2);
14419 if (VT != ShuffleVT)
39002 unsigned &Shuffle, MVT &ShuffleVT,
39017 ShuffleVT = (AllowFloatDomain ? MVT::v4f64 : MVT::v4i64);
39025 ShuffleVT = (AllowFloatDomain ? MVT::v8f64 : MVT::v8i64);
39033 ShuffleVT = MVT::getVectorVT(MVT::f64, Mask.size());
39063 ShuffleVT = (AllowIntDomain ? MVT::i32 : MVT::f32);
39064 ShuffleVT = MVT::getVectorVT(ShuffleVT, InputSizeInBits / 32);
39084 ShuffleVT = MVT::getVectorVT(MVT::i16, InputSizeInBits / 16);
39098 ShuffleVT = MVT::getVectorVT(MVT::i16, InputSizeInBits / 16);
39109 int RotateAmt = matchShuffleAsBitRotate(ShuffleVT, MaskScalarSizeInBits,
39124 matchShuffleAsShift(ShuffleVT, Shuffle, MaskScalarSizeInBits, Mask, 0,
39126 if (0 < ShiftAmt && (!ShuffleVT.is512BitVector() || Subtarget.hasBWI() ||
39127 32 <= ShuffleVT.getScalarSizeInBits())) {
39346 unsigned &Shuffle, MVT &ShuffleVT, unsigned &PermuteImm) {
39360 ShuffleVT = MVT::getVectorVT(MVT::i64, MaskVT.getSizeInBits() / 64);
39362 ShuffleVT = MVT::getVectorVT(MVT::i32, MaskVT.getSizeInBits() / 32);
39376 ShuffleVT = MVT::getVectorVT(MVT::i8, MaskVT.getSizeInBits() / 8);
39405 ShuffleVT = MaskVT;
39413 ShuffleVT = MaskVT;
39425 ShuffleVT = MVT::v4f32;
39440 ShuffleVT = MVT::getVectorVT(MVT::f64, MaskVT.getSizeInBits() / 64);
39485 ShuffleVT = MVT::getVectorVT(MVT::f32, MaskVT.getSizeInBits() / 32);
39497 ShuffleVT = MVT::v4f32;
39632 auto MatchSHUF128 = [&](MVT ShuffleVT, const SDLoc &DL,
39637 SDValue Ops[2] = {DAG.getUNDEF(ShuffleVT), DAG.getUNDEF(ShuffleVT)};
39653 return DAG.getNode(X86ISD::SHUF128, DL, ShuffleVT,
39654 CanonicalizeShuffleInput(ShuffleVT, Ops[0]),
39655 CanonicalizeShuffleInput(ShuffleVT, Ops[1]),
39674 MVT ShuffleVT = (FloatDomain ? MVT::v8f64 : MVT::v8i64);
39675 if (SDValue V = MatchSHUF128(ShuffleVT, DL, ScaledMask, V1, V2, DAG))
39783 MVT ShuffleSrcVT, ShuffleVT;
39825 DAG, Subtarget, Shuffle, ShuffleSrcVT, ShuffleVT) &&
39827 (NumRootElts == ShuffleVT.getVectorNumElements()))) {
39831 Res = DAG.getNode(Shuffle, DL, ShuffleVT, Res);
39836 AllowIntDomain, DAG, Subtarget, Shuffle, ShuffleVT,
39839 (NumRootElts == ShuffleVT.getVectorNumElements()))) {
39842 Res = CanonicalizeShuffleInput(ShuffleVT, V1);
39843 Res = DAG.getNode(Shuffle, DL, ShuffleVT, Res,
39888 ShuffleVT, UnaryShuffle) &&
39889 (!IsMaskedShuffle || (NumRootElts == ShuffleVT.getVectorNumElements()))) {
39894 Res = DAG.getNode(Shuffle, DL, ShuffleVT, NewV1, NewV2);
39902 Subtarget, Shuffle, ShuffleVT, PermuteImm) &&
39903 (!IsMaskedShuffle || (NumRootElts == ShuffleVT.getVectorNumElements()))) {
39906 NewV1 = CanonicalizeShuffleInput(ShuffleVT, NewV1);
39907 NewV2 = CanonicalizeShuffleInput(ShuffleVT, NewV2);
39908 Res = DAG.getNode(Shuffle, DL, ShuffleVT, NewV1, NewV2,
39946 if (matchShuffleAsVTRUNC(ShuffleSrcVT, ShuffleVT, IntMaskVT, Mask, Zeroable,
39948 bool IsTRUNCATE = ShuffleVT.getVectorNumElements() ==
39955 Res = DAG.getNode(Opc, DL, ShuffleVT, V1);
39956 if (ShuffleVT.getSizeInBits() < RootSizeInBits)
40514 MVT ShuffleVT = MVT::getVectorVT(MVT::f32, RootSizeInBits / 32);
40515 Res = DAG.getBitcast(ShuffleVT, Res);
40516 return DAG.getNode(X86ISD::SHUFP, DL, ShuffleVT, Res, Res,
41529 EVT ShuffleVT = N.getValueType();
41549 auto IsSafeToMoveShuffle = [ShuffleVT](SDValue Op, unsigned BinOp) {
41553 (Op.getScalarValueSizeInBits() <= ShuffleVT.getScalarSizeInBits());
41573 if (N.getOperand(0).getValueType() == ShuffleVT &&
41586 Op00 = DAG.getBitcast(ShuffleVT, Op00);
41587 Op01 = DAG.getBitcast(ShuffleVT, Op01);
41589 LHS = DAG.getNode(Opc, DL, ShuffleVT, Op00, N.getOperand(1));
41590 RHS = DAG.getNode(Opc, DL, ShuffleVT, Op01, N.getOperand(1));
41592 LHS = DAG.getNode(Opc, DL, ShuffleVT, Op00);
41593 RHS = DAG.getNode(Opc, DL, ShuffleVT, Op01);
41595 return DAG.getBitcast(ShuffleVT,
41604 SDValue Op00 = DAG.getBitcast(ShuffleVT, N0.getOperand(0));
41607 ? DAG.getNode(Opc, DL, ShuffleVT, Op00, N.getOperand(1))
41608 : DAG.getNode(Opc, DL, ShuffleVT, Op00);
41610 return DAG.getBitcast(ShuffleVT, DAG.getNode(SrcOpcode, DL, OpVT, Res));
41650 Op00 = DAG.getBitcast(ShuffleVT, Op00);
41651 Op10 = DAG.getBitcast(ShuffleVT, Op10);
41652 Op01 = DAG.getBitcast(ShuffleVT, Op01);
41653 Op11 = DAG.getBitcast(ShuffleVT, Op11);
41655 LHS = DAG.getNode(Opc, DL, ShuffleVT, Op00, Op10, N.getOperand(2));
41656 RHS = DAG.getNode(Opc, DL, ShuffleVT, Op01, Op11, N.getOperand(2));
41658 LHS = DAG.getNode(Opc, DL, ShuffleVT, Op00, Op10);
41659 RHS = DAG.getNode(Opc, DL, ShuffleVT, Op01, Op11);
41662 return DAG.getBitcast(ShuffleVT,
41675 Op00 = DAG.getBitcast(ShuffleVT, Op00);
41676 Op10 = DAG.getBitcast(ShuffleVT, Op10);
41678 Res = DAG.getNode(Opc, DL, ShuffleVT, Op00, Op10, N.getOperand(2));
41680 Res = DAG.getNode(Opc, DL, ShuffleVT, Op00, Op10);
41684 ShuffleVT,
41692 ShuffleVT.getScalarSizeInBits() == N0.getScalarValueSizeInBits() &&
41699 return DAG.getBitcast(ShuffleVT,
57727 MVT ShuffleVT = VT.isFloatingPoint() ? MVT::v8f64 : MVT::v8i64;
57732 SDValue Res = DAG.getNode(X86ISD::SHUF128, DL, ShuffleVT,
57733 DAG.getBitcast(ShuffleVT, LHS),
57734 DAG.getBitcast(ShuffleVT, RHS),
58099 MVT ShuffleVT = VT.isFloatingPoint() ? MVT::v8f64 : MVT::v8i64;
58101 Res = DAG.getBitcast(ShuffleVT, Res);
58102 Res = DAG.getNode(X86ISD::SHUF128, DL, ShuffleVT, Res, Res,