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

References

lib/Target/X86/X86ISelLowering.cpp
13279   assert(Mask.size() == 4 && "Unexpected mask size for v4 shuffle!");
13284   if (SDValue ZExt = lowerShuffleAsZeroOrAnyExtend(DL, MVT::v4i32, V1, V2, Mask,
13288   int NumV2Elements = count_if(Mask, [](int M) { return M >= 4; });
13292     if (count_if(Mask, [](int M) { return M >= 0 && M < 4; }) > 1) {
13294                                                       Mask, Subtarget, DAG))
13305     if (isShuffleEquivalent(V1, V2, Mask, {0, 0, 1, 1}))
13306       Mask = UnpackLoMask;
13307     else if (isShuffleEquivalent(V1, V2, Mask, {2, 2, 3, 3}))
13308       Mask = UnpackHiMask;
13311                        getV4X86ShuffleImm8ForMask(Mask, DL, DAG));
13315     if (SDValue Extract = lowerShuffleOfExtractsAsVperm(DL, V1, V2, Mask, DAG))
13319   if (SDValue Shift = lowerShuffleAsShift(DL, MVT::v4i32, V1, V2, Mask,
13326             DL, MVT::v4i32, V1, V2, Mask, Zeroable, Subtarget, DAG))
13333     if (SDValue Blend = lowerShuffleAsBlend(DL, MVT::v4i32, V1, V2, Mask,
13337   if (SDValue Masked = lowerShuffleAsBitMask(DL, MVT::v4i32, V1, V2, Mask,
13342   if (SDValue V = lowerShuffleWithUNPCK(DL, MVT::v4i32, Mask, V1, V2, DAG))
13349       if (SDValue Rotate = lowerShuffleAsRotate(DL, MVT::v4i32, V1, V2, Mask,
13353     if (SDValue Rotate = lowerShuffleAsByteRotate(DL, MVT::v4i32, V1, V2, Mask,
13361   if (!isSingleSHUFPSMask(Mask)) {
13365       return lowerShuffleAsDecomposedShuffleBlend(DL, MVT::v4i32, V1, V2, Mask,
13370                                                         Mask, Subtarget, DAG))
13381   SDValue ShufPS = DAG.getVectorShuffle(MVT::v4f32, DL, CastV1, CastV2, Mask);