@@ -22752,14 +22752,13 @@ static SDValue scalarizeExtractedBinOp(SDNode *ExtElt, SelectionDAG &DAG,
2275222752 SDValue Vec = ExtElt->getOperand(0);
2275322753 SDValue Index = ExtElt->getOperand(1);
2275422754 auto *IndexC = dyn_cast<ConstantSDNode>(Index);
22755- if (!IndexC ||
22756- (!TLI.isBinOp(Vec.getOpcode()) && Vec.getOpcode() != ISD::SETCC) ||
22757- !Vec.hasOneUse() || Vec->getNumValues() != 1)
22755+ unsigned Opc = Vec.getOpcode();
22756+ if (!IndexC || (!TLI.isBinOp(Opc) && Opc != ISD::SETCC) || !Vec.hasOneUse( ) ||
22757+ Vec->getNumValues() != 1)
2275822758 return SDValue();
2275922759
2276022760 EVT ResVT = ExtElt->getValueType(0);
22761- if (Vec.getOpcode() == ISD::SETCC &&
22762- ResVT != Vec.getValueType().getVectorElementType())
22761+ if (Opc == ISD::SETCC && ResVT != Vec.getValueType().getVectorElementType())
2276322762 return SDValue();
2276422763
2276522764 // Targets may want to avoid this to prevent an expensive register transfer.
@@ -22784,11 +22783,11 @@ static SDValue scalarizeExtractedBinOp(SDNode *ExtElt, SelectionDAG &DAG,
2278422783 Op0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, OpVT, Op0, Index);
2278522784 Op1 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, OpVT, Op1, Index);
2278622785
22787- if (Vec.getOpcode() == ISD::SETCC)
22786+ if (Opc == ISD::SETCC)
2278822787 return DAG.getSetCC(DL, ResVT, Op0, Op1,
2278922788 cast<CondCodeSDNode>(Vec->getOperand(2))->get());
2279022789 else
22791- return DAG.getNode(Vec.getOpcode() , DL, ResVT, Op0, Op1);
22790+ return DAG.getNode(Opc , DL, ResVT, Op0, Op1);
2279222791}
2279322792
2279422793// Given a ISD::EXTRACT_VECTOR_ELT, which is a glorified bit sequence extract,
0 commit comments