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

References

lib/Target/X86/X86ISelLowering.cpp
12914   assert(Mask.size() == 2 && "Unexpected mask size for v2 shuffle!");
12919                                                     Mask, Subtarget, DAG))
12924     unsigned SHUFPDMask = (Mask[0] == 1) | ((Mask[1] == 1) << 1);
12924     unsigned SHUFPDMask = (Mask[0] == 1) | ((Mask[1] == 1) << 1);
12935         Mask[0] == SM_SentinelUndef ? DAG.getUNDEF(MVT::v2f64) : V1,
12936         Mask[1] == SM_SentinelUndef ? DAG.getUNDEF(MVT::v2f64) : V1,
12939   assert(Mask[0] >= 0 && "No undef lanes in multi-input v2 shuffles!");
12940   assert(Mask[1] >= 0 && "No undef lanes in multi-input v2 shuffles!");
12941   assert(Mask[0] < 2 && "We sort V1 to be the first input.");
12942   assert(Mask[1] >= 2 && "We sort V2 to be the second input.");
12945     if (SDValue Extract = lowerShuffleOfExtractsAsVperm(DL, V1, V2, Mask, DAG))
12951           DL, MVT::v2f64, V1, V2, Mask, Zeroable, Subtarget, DAG))
12955   int InverseMask[2] = {Mask[0] < 0 ? -1 : (Mask[0] ^ 2),
12955   int InverseMask[2] = {Mask[0] < 0 ? -1 : (Mask[0] ^ 2),
12956                         Mask[1] < 0 ? -1 : (Mask[1] ^ 2)};
12956                         Mask[1] < 0 ? -1 : (Mask[1] ^ 2)};
12963   if (isShuffleEquivalent(V1, V2, Mask, {0, 3}) ||
12964       isShuffleEquivalent(V1, V2, Mask, {1, 3}))
12965     if (SDValue V1S = getScalarValueForVectorElement(V1, Mask[0], DAG))
12973     if (SDValue Blend = lowerShuffleAsBlend(DL, MVT::v2f64, V1, V2, Mask,
12978   if (SDValue V = lowerShuffleWithUNPCK(DL, MVT::v2f64, Mask, V1, V2, DAG))
12981   unsigned SHUFPDMask = (Mask[0] == 1) | (((Mask[1] - 2) == 1) << 1);
12981   unsigned SHUFPDMask = (Mask[0] == 1) | (((Mask[1] - 2) == 1) << 1);