reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
32395 MaskVT = MVT::getVectorVT(MaskVT, NumMaskElts); 32395 MaskVT = MVT::getVectorVT(MaskVT, NumMaskElts); 32398 if (!DAG.getTargetLoweringInfo().isTypeLegal(MaskVT)) 32410 (!MaskVT.is256BitVector() || Subtarget.hasAVX2()); 32441 if (V1.getValueType() == MaskVT && 32447 Res = DAG.getNode(X86ISD::VBROADCAST, DL, MaskVT, Res); 32453 Res = DAG.getBitcast(MaskVT, V1); 32454 Res = DAG.getNode(X86ISD::VBROADCAST, DL, MaskVT, Res); 32461 if (matchUnaryShuffle(MaskVT, Mask, AllowFloatDomain, AllowIntDomain, NewV1, 32472 if (matchUnaryPermuteShuffle(MaskVT, Mask, Zeroable, AllowFloatDomain, 32487 if (matchBinaryShuffle(MaskVT, Mask, AllowFloatDomain, AllowIntDomain, NewV1, 32502 MaskVT, Mask, Zeroable, AllowFloatDomain, AllowIntDomain, NewV1, 32556 if (is128BitLaneCrossingShuffleMask(MaskVT, Mask)) { 32560 (MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32560 (MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32562 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32562 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32563 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32563 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32564 (Subtarget.hasBWI() && MaskVT == MVT::v32i16) || 32565 (Subtarget.hasBWI() && Subtarget.hasVLX() && MaskVT == MVT::v16i16) || 32566 (Subtarget.hasVBMI() && MaskVT == MVT::v64i8) || 32567 (Subtarget.hasVBMI() && Subtarget.hasVLX() && MaskVT == MVT::v32i8))) { 32569 Res = DAG.getBitcast(MaskVT, V1); 32570 Res = DAG.getNode(X86ISD::VPERMV, DL, MaskVT, VPermMask, Res); 32578 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32578 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32579 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32579 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32581 (MaskVT == MVT::v4f64 || MaskVT == MVT::v4i64 || 32581 (MaskVT == MVT::v4f64 || MaskVT == MVT::v4i64 || 32582 MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32582 MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32583 (Subtarget.hasBWI() && MaskVT == MVT::v32i16) || 32584 (Subtarget.hasBWI() && Subtarget.hasVLX() && MaskVT == MVT::v16i16) || 32585 (Subtarget.hasVBMI() && MaskVT == MVT::v64i8) || 32586 (Subtarget.hasVBMI() && Subtarget.hasVLX() && MaskVT == MVT::v32i8))) { 32593 Res = DAG.getBitcast(MaskVT, V1); 32594 SDValue Zero = getZeroVector(MaskVT, Subtarget, DAG, DL); 32595 Res = DAG.getNode(X86ISD::VPERMV3, DL, MaskVT, Res, VPermMask, Zero); 32609 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32609 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32610 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32610 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32612 (MaskVT == MVT::v4f64 || MaskVT == MVT::v4i64 || 32612 (MaskVT == MVT::v4f64 || MaskVT == MVT::v4i64 || 32613 MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32613 MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32614 (Subtarget.hasBWI() && MaskVT == MVT::v32i16) || 32615 (Subtarget.hasBWI() && Subtarget.hasVLX() && MaskVT == MVT::v16i16) || 32616 (Subtarget.hasVBMI() && MaskVT == MVT::v64i8) || 32617 (Subtarget.hasVBMI() && Subtarget.hasVLX() && MaskVT == MVT::v32i8))) { 32619 V1 = DAG.getBitcast(MaskVT, V1); 32620 V2 = DAG.getBitcast(MaskVT, V2); 32621 Res = DAG.getNode(X86ISD::VPERMV3, DL, MaskVT, V1, VPermMask, V2); 32631 DAG.getTargetLoweringInfo().isTypeLegal(MaskVT)) { 32646 SDValue BitMask = getConstVector(EltBits, UndefElts, MaskVT, DAG, DL); 32647 Res = DAG.getBitcast(MaskVT, V1); 32650 Res = DAG.getNode(AndOpcode, DL, MaskVT, Res, BitMask); 32658 ((MaskVT == MVT::v8f32 && Subtarget.hasAVX()) || 32659 (MaskVT == MVT::v16f32 && Subtarget.hasAVX512()))) { 32667 Res = DAG.getBitcast(MaskVT, V1); 32668 Res = DAG.getNode(X86ISD::VPERMILPV, DL, MaskVT, Res, VPermMask); 32675 (MaskVT == MVT::v2f64 || MaskVT == MVT::v4f64 || MaskVT == MVT::v4f32 || 32675 (MaskVT == MVT::v2f64 || MaskVT == MVT::v4f64 || MaskVT == MVT::v4f32 || 32675 (MaskVT == MVT::v2f64 || MaskVT == MVT::v4f64 || MaskVT == MVT::v4f32 || 32676 MaskVT == MVT::v8f32)) { 32681 unsigned NumLanes = MaskVT.getSizeInBits() / 128; 32696 Index = (MaskVT.getScalarSizeInBits() == 64 ? Index << 1 : Index); 32699 V1 = DAG.getBitcast(MaskVT, V1); 32700 V2 = DAG.getBitcast(MaskVT, V2); 32702 Res = DAG.getNode(X86ISD::VPERMIL2, DL, MaskVT, V1, V2, VPerm2MaskOp, 32781 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32781 (MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 || 32782 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32782 MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) || 32784 (MaskVT == MVT::v2f64 || MaskVT == MVT::v2i64 || MaskVT == MVT::v4f64 || 32784 (MaskVT == MVT::v2f64 || MaskVT == MVT::v2i64 || MaskVT == MVT::v4f64 || 32784 (MaskVT == MVT::v2f64 || MaskVT == MVT::v2i64 || MaskVT == MVT::v4f64 || 32785 MaskVT == MVT::v4i64 || MaskVT == MVT::v4f32 || MaskVT == MVT::v4i32 || 32785 MaskVT == MVT::v4i64 || MaskVT == MVT::v4f32 || MaskVT == MVT::v4i32 || 32785 MaskVT == MVT::v4i64 || MaskVT == MVT::v4f32 || MaskVT == MVT::v4i32 || 32786 MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32786 MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) || 32787 (Subtarget.hasBWI() && MaskVT == MVT::v32i16) || 32789 (MaskVT == MVT::v8i16 || MaskVT == MVT::v16i16)) || 32789 (MaskVT == MVT::v8i16 || MaskVT == MVT::v16i16)) || 32790 (Subtarget.hasVBMI() && MaskVT == MVT::v64i8) || 32792 (MaskVT == MVT::v16i8 || MaskVT == MVT::v32i8)))) { 32792 (MaskVT == MVT::v16i8 || MaskVT == MVT::v32i8)))) { 32794 V1 = DAG.getBitcast(MaskVT, V1); 32795 V2 = DAG.getBitcast(MaskVT, V2); 32796 Res = DAG.getNode(X86ISD::VPERMV3, DL, MaskVT, V1, VPermMask, V2);