@@ -9789,6 +9789,7 @@ static bool IsElementEquivalent(int MaskSize, SDValue Op, SDValue ExpectedOp,
9789
9789
if (!Op || !ExpectedOp || Op.getOpcode() != ExpectedOp.getOpcode())
9790
9790
return false;
9791
9791
9792
+ EVT VT = Op.getValueType();
9792
9793
switch (Op.getOpcode()) {
9793
9794
case ISD::BUILD_VECTOR:
9794
9795
// If the values are build vectors, we can look through them to find
@@ -9800,9 +9801,8 @@ static bool IsElementEquivalent(int MaskSize, SDValue Op, SDValue ExpectedOp,
9800
9801
break;
9801
9802
case X86ISD::VBROADCAST:
9802
9803
case X86ISD::VBROADCAST_LOAD:
9803
- // TODO: Handle MaskSize != Op.getValueType().getVectorNumElements()?
9804
- return (Op == ExpectedOp &&
9805
- (int)Op.getValueType().getVectorNumElements() == MaskSize);
9804
+ // TODO: Handle MaskSize != VT.getVectorNumElements()?
9805
+ return (Op == ExpectedOp && (int)VT.getVectorNumElements() == MaskSize);
9806
9806
case X86ISD::HADD:
9807
9807
case X86ISD::HSUB:
9808
9808
case X86ISD::FHADD:
@@ -9813,7 +9813,6 @@ static bool IsElementEquivalent(int MaskSize, SDValue Op, SDValue ExpectedOp,
9813
9813
// TODO: Handle MaskSize != NumElts?
9814
9814
// TODO: Handle HOP(X,Y) vs HOP(Y,X) equivalence cases.
9815
9815
if (Op == ExpectedOp && Op.getOperand(0) == Op.getOperand(1)) {
9816
- MVT VT = Op.getSimpleValueType();
9817
9816
int NumElts = VT.getVectorNumElements();
9818
9817
if (MaskSize == NumElts) {
9819
9818
int NumLanes = VT.getSizeInBits() / 128;
0 commit comments