@@ -22752,14 +22752,13 @@ static SDValue scalarizeExtractedBinOp(SDNode *ExtElt, SelectionDAG &DAG,
22752
22752
SDValue Vec = ExtElt->getOperand(0);
22753
22753
SDValue Index = ExtElt->getOperand(1);
22754
22754
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)
22758
22758
return SDValue();
22759
22759
22760
22760
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())
22763
22762
return SDValue();
22764
22763
22765
22764
// Targets may want to avoid this to prevent an expensive register transfer.
@@ -22784,11 +22783,11 @@ static SDValue scalarizeExtractedBinOp(SDNode *ExtElt, SelectionDAG &DAG,
22784
22783
Op0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, OpVT, Op0, Index);
22785
22784
Op1 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, OpVT, Op1, Index);
22786
22785
22787
- if (Vec.getOpcode() == ISD::SETCC)
22786
+ if (Opc == ISD::SETCC)
22788
22787
return DAG.getSetCC(DL, ResVT, Op0, Op1,
22789
22788
cast<CondCodeSDNode>(Vec->getOperand(2))->get());
22790
22789
else
22791
- return DAG.getNode(Vec.getOpcode() , DL, ResVT, Op0, Op1);
22790
+ return DAG.getNode(Opc , DL, ResVT, Op0, Op1);
22792
22791
}
22793
22792
22794
22793
// Given a ISD::EXTRACT_VECTOR_ELT, which is a glorified bit sequence extract,
0 commit comments