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

References

lib/Target/X86/X86ISelLowering.cpp
44286   if (auto *FirstLd = dyn_cast<LoadSDNode>(peekThroughBitcasts(Op0))) {
44299   if (llvm::all_of(Ops, [Op0](SDValue Op) { return Op == Op0; })) {
44299   if (llvm::all_of(Ops, [Op0](SDValue Op) { return Op == Op0; })) {
44302     if (Op0.getOpcode() == X86ISD::VBROADCAST ||
44303         Op0.getOpcode() == X86ISD::SUBV_BROADCAST)
44304       return DAG.getNode(Op0.getOpcode(), DL, VT, Op0.getOperand(0));
44304       return DAG.getNode(Op0.getOpcode(), DL, VT, Op0.getOperand(0));
44307     if (Op0.getOpcode() == X86ISD::MOVDDUP && VT == MVT::v4f64 &&
44308         (Subtarget.hasAVX2() || MayFoldLoad(Op0.getOperand(0))))
44311                                      Op0.getOperand(0),
44315     if (Op0.getOpcode() == ISD::SCALAR_TO_VECTOR &&
44317          (VT.getScalarSizeInBits() >= 32 && MayFoldLoad(Op0.getOperand(0)))) &&
44318         Op0.getOperand(0).getValueType() == VT.getScalarType())
44319       return DAG.getNode(X86ISD::VBROADCAST, DL, VT, Op0.getOperand(0));
44322   bool IsSplat = llvm::all_of(Ops, [&Op0](SDValue Op) { return Op == Op0; });
44322   bool IsSplat = llvm::all_of(Ops, [&Op0](SDValue Op) { return Op == Op0; });
44327   if (llvm::all_of(Ops, [Op0](SDValue Op) {
44328         return Op.getOpcode() == Op0.getOpcode();
44331     switch (Op0.getOpcode()) {
44336           Subtarget.hasInt256() && Op0.getOperand(1) == Ops[1].getOperand(1)) {
44340         return DAG.getNode(Op0.getOpcode(), DL, VT,
44342                            Op0.getOperand(1));
44348           Subtarget.hasAVX() && Op0.getOperand(1) == Ops[1].getOperand(1)) {
44354                           Op0.getOperand(1));
44365         MVT SrcVT = Op0.getOperand(0).getSimpleValueType();
44368         return DAG.getNode(Op0.getOpcode(), DL, VT,