reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
44596 SDValue InVecBC = peekThroughBitcasts(InVec); 44597 EVT InVecVT = InVec.getValueType(); 44628 if (ISD::isBuildVectorAllZeros(InVec.getNode())) 44631 if (ISD::isBuildVectorAllOnes(InVec.getNode())) { 44637 if (InVec.getOpcode() == ISD::BUILD_VECTOR) 44640 InVec.getNode()->ops().slice(IdxVal, VT.getVectorNumElements())); 44645 if (InVec != InVecBC && InVecBCVT.isVector()) { 44671 InVec.getOpcode() == ISD::INSERT_SUBVECTOR && IdxVal == 0 && 44672 InVec.hasOneUse() && isNullConstant(InVec.getOperand(2)) && 44672 InVec.hasOneUse() && isNullConstant(InVec.getOperand(2)) && 44673 ISD::isBuildVectorAllZeros(InVec.getOperand(0).getNode()) && 44674 InVec.getOperand(1).getValueSizeInBits() <= VT.getSizeInBits()) { 44678 InVec.getOperand(1), InVec.getOperand(2)); 44678 InVec.getOperand(1), InVec.getOperand(2)); 44684 if (InVec.getOpcode() == X86ISD::VBROADCAST && InVec.hasOneUse() && 44684 if (InVec.getOpcode() == X86ISD::VBROADCAST && InVec.hasOneUse() && 44685 InVec.getOperand(0).getValueSizeInBits() <= VT.getSizeInBits()) 44686 return DAG.getNode(X86ISD::VBROADCAST, SDLoc(N), VT, InVec.getOperand(0)); 44688 if (InVec.getOpcode() == X86ISD::VBROADCAST_LOAD && InVec.hasOneUse()) { 44688 if (InVec.getOpcode() == X86ISD::VBROADCAST_LOAD && InVec.hasOneUse()) { 44689 auto *MemIntr = cast<MemIntrinsicSDNode>(InVec); 44704 if (IdxVal == 0 && InVec.hasOneUse()) { 44705 unsigned InOpcode = InVec.getOpcode(); 44709 InVec.getOperand(0).getValueType() == MVT::v4i32) { 44710 return DAG.getNode(X86ISD::CVTSI2P, SDLoc(N), VT, InVec.getOperand(0)); 44714 InVec.getOperand(0).getValueType() == MVT::v4i32) { 44715 return DAG.getNode(X86ISD::CVTUI2P, SDLoc(N), VT, InVec.getOperand(0)); 44719 InVec.getOperand(0).getValueType() == MVT::v4f32) { 44720 return DAG.getNode(X86ISD::VFPEXT, SDLoc(N), VT, InVec.getOperand(0)); 44730 InVec.getOperand(0).getSimpleValueType().is128BitVector()) { 44732 return DAG.getNode(ExtOp, SDLoc(N), VT, InVec.getOperand(0)); 44735 InVec.getOperand(0).getValueType().is256BitVector() && 44736 InVec.getOperand(1).getValueType().is256BitVector() && 44737 InVec.getOperand(2).getValueType().is256BitVector()) { 44739 SDValue Ext0 = extractSubVector(InVec.getOperand(0), 0, DAG, DL, 128); 44740 SDValue Ext1 = extractSubVector(InVec.getOperand(1), 0, DAG, DL, 128); 44741 SDValue Ext2 = extractSubVector(InVec.getOperand(2), 0, DAG, DL, 128);