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

References

lib/Target/X86/X86ISelLowering.cpp
12528     switch (V.getOpcode()) {
12530       V = V.getOperand(0);
12530       V = V.getOperand(0);
12534       int OpBitWidth = V.getOperand(0).getValueSizeInBits();
12536       V = V.getOperand(OpIdx);
12536       V = V.getOperand(OpIdx);
12541       SDValue VOuter = V.getOperand(0), VInner = V.getOperand(1);
12541       SDValue VOuter = V.getOperand(0), VInner = V.getOperand(1);
12542       auto ConstantIdx = dyn_cast<ConstantSDNode>(V.getOperand(2));
12553         V = VInner;
12555         V = VOuter;
12566   bool BitCastSrc = V.getScalarValueSizeInBits() != NumEltBits;
12575             DL, VT, V, BroadcastIdx, Subtarget, DAG))
12582       ((V.getOpcode() == ISD::BUILD_VECTOR && V.hasOneUse()) ||
12582       ((V.getOpcode() == ISD::BUILD_VECTOR && V.hasOneUse()) ||
12583        (V.getOpcode() == ISD::SCALAR_TO_VECTOR && BroadcastIdx == 0))) {
12584     V = V.getOperand(BroadcastIdx);
12584     V = V.getOperand(BroadcastIdx);
12587     if (!BroadcastFromReg && !isShuffleFoldableLoad(V))
12589   } else if (MayFoldLoad(V) && cast<LoadSDNode>(V)->isSimple()) {
12589   } else if (MayFoldLoad(V) && cast<LoadSDNode>(V)->isSimple()) {
12600     LoadSDNode *Ld = cast<LoadSDNode>(V);
12606     V = DAG.getLoad(SVT, DL, Ld->getChain(), NewAddr,
12609     DAG.makeEquivalentMemoryOrdering(Ld, V);
12628     assert((BitOffset % V.getScalarValueSizeInBits()) == 0 &&
12630     assert((V.getValueSizeInBits() == 256 || V.getValueSizeInBits() == 512) &&
12630     assert((V.getValueSizeInBits() == 256 || V.getValueSizeInBits() == 512) &&
12632     unsigned ExtractIdx = BitOffset / V.getScalarValueSizeInBits();
12633     V = extract128BitVector(V, ExtractIdx, DAG, DL);
12633     V = extract128BitVector(V, ExtractIdx, DAG, DL);
12636   if (Opcode == X86ISD::MOVDDUP && !V.getValueType().isVector())
12637     V = DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, MVT::v2f64,
12638                     DAG.getBitcast(MVT::f64, V));
12641   if (V.getValueType().getScalarType() != BroadcastVT.getScalarType()) {
12645     if (V.getValueType().isVector()) {
12646       unsigned NumSrcElts = V.getValueSizeInBits() / NumEltBits;
12651     V = DAG.getBitcast(ExtVT, V);
12651     V = DAG.getBitcast(ExtVT, V);
12655   if (!Subtarget.is64Bit() && V.getValueType() == MVT::i64) {
12656     V = DAG.getBitcast(MVT::f64, V);
12656     V = DAG.getBitcast(MVT::f64, V);
12664   if (V.getValueSizeInBits() > 128) {
12665     MVT ExtVT = V.getSimpleValueType().getScalarType();
12667     V = extract128BitVector(peekThroughBitcasts(V), 0, DAG, DL);
12667     V = extract128BitVector(peekThroughBitcasts(V), 0, DAG, DL);
12668     V = DAG.getBitcast(ExtVT, V);
12668     V = DAG.getBitcast(ExtVT, V);
12671   return DAG.getBitcast(VT, DAG.getNode(Opcode, DL, BroadcastVT, V));