|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Target/X86/X86ISelLowering.cpp13279 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);