[X86] IsElementEquivalent - pull out repeated getValueType calls. NFC.

This commit is contained in:
Simon Pilgrim 2025-02-10 13:22:42 +00:00
parent 83fa117f76
commit 121e6abefd

View File

@ -9789,6 +9789,7 @@ static bool IsElementEquivalent(int MaskSize, SDValue Op, SDValue ExpectedOp,
if (!Op || !ExpectedOp || Op.getOpcode() != ExpectedOp.getOpcode())
return false;
EVT VT = Op.getValueType();
switch (Op.getOpcode()) {
case ISD::BUILD_VECTOR:
// 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,
break;
case X86ISD::VBROADCAST:
case X86ISD::VBROADCAST_LOAD:
// TODO: Handle MaskSize != Op.getValueType().getVectorNumElements()?
return (Op == ExpectedOp &&
(int)Op.getValueType().getVectorNumElements() == MaskSize);
// TODO: Handle MaskSize != VT.getVectorNumElements()?
return (Op == ExpectedOp && (int)VT.getVectorNumElements() == MaskSize);
case X86ISD::HADD:
case X86ISD::HSUB:
case X86ISD::FHADD:
@ -9813,7 +9813,6 @@ static bool IsElementEquivalent(int MaskSize, SDValue Op, SDValue ExpectedOp,
// TODO: Handle MaskSize != NumElts?
// TODO: Handle HOP(X,Y) vs HOP(Y,X) equivalence cases.
if (Op == ExpectedOp && Op.getOperand(0) == Op.getOperand(1)) {
MVT VT = Op.getSimpleValueType();
int NumElts = VT.getVectorNumElements();
if (MaskSize == NumElts) {
int NumLanes = VT.getSizeInBits() / 128;