reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/X86ISelLowering.cpp
32137   unsigned EltSizeInBits = MaskVT.getScalarSizeInBits();
32140   if (AllowIntDomain && ((MaskVT.is128BitVector() && Subtarget.hasSSSE3()) ||
32141                          (MaskVT.is256BitVector() && Subtarget.hasAVX2()))) {
32142     int ByteRotation = matchShuffleAsByteRotate(MaskVT, V1, V2, Mask);
32145       ShuffleVT = MVT::getVectorVT(MVT::i8, MaskVT.getSizeInBits() / 8);
32152   if ((NumMaskElts <= 8 && ((Subtarget.hasSSE41() && MaskVT.is128BitVector()) ||
32153                             (Subtarget.hasAVX() && MaskVT.is256BitVector()))) ||
32154       (MaskVT == MVT::v16i16 && Subtarget.hasAVX2())) {
32160       if (MaskVT == MVT::v16i16) {
32163         if (isRepeatedTargetShuffleMask(128, MaskVT, TargetMask,
32171           V1 = ForceV1Zero ? getZeroVector(MaskVT, Subtarget, DAG, DL) : V1;
32172           V2 = ForceV2Zero ? getZeroVector(MaskVT, Subtarget, DAG, DL) : V2;
32174           ShuffleVT = MaskVT;
32178         V1 = ForceV1Zero ? getZeroVector(MaskVT, Subtarget, DAG, DL) : V1;
32179         V2 = ForceV2Zero ? getZeroVector(MaskVT, Subtarget, DAG, DL) : V2;
32182         ShuffleVT = MaskVT;
32191       MaskVT.is128BitVector() &&
32201       ((MaskVT.is128BitVector() && Subtarget.hasSSE2()) ||
32202        (MaskVT.is256BitVector() && Subtarget.hasAVX()) ||
32203        (MaskVT.is512BitVector() && Subtarget.hasAVX512()))) {
32205     if (matchShuffleWithSHUFPD(MaskVT, V1, V2, ForceV1Zero, ForceV2Zero,
32207       V1 = ForceV1Zero ? getZeroVector(MaskVT, Subtarget, DAG, DL) : V1;
32208       V2 = ForceV2Zero ? getZeroVector(MaskVT, Subtarget, DAG, DL) : V2;
32210       ShuffleVT = MVT::getVectorVT(MVT::f64, MaskVT.getSizeInBits() / 64);
32217       ((MaskVT.is128BitVector() && Subtarget.hasSSE1()) ||
32218        (MaskVT.is256BitVector() && Subtarget.hasAVX()) ||
32219        (MaskVT.is512BitVector() && Subtarget.hasAVX512()))) {
32221     if (isRepeatedTargetShuffleMask(128, MaskVT, Mask, RepeatedMask)) {
32229           return DAG.getUNDEF(MaskVT);
32233           return getZeroVector(MaskVT, Subtarget, DAG, DL);
32255         ShuffleVT = MVT::getVectorVT(MVT::f32, MaskVT.getSizeInBits() / 32);
32264       MaskVT.is128BitVector() &&