1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-21 18:22:53 +01:00

X86: fixup matchPMADDWD_3

This commit is contained in:
Nekotekina 2021-11-18 12:01:17 +03:00
parent 1cc7bdd501
commit 318b8fe374

View File

@ -50278,21 +50278,18 @@ static SDValue matchPMADDWD_3(SelectionDAG &DAG, SDValue N0, SDValue N1,
// N1 = DAG.getNode(ISD::OR, DL, VT, N01, N11);
}
} else {
Mask17 = 0;
N00 = DAG.getNode(ISD::SRL, DL, VT, N00.getOperand(0), N00.getOperand(1));
N01 = DAG.getNode(ISD::SRL, DL, VT, N01.getOperand(0), N01.getOperand(1));
N10 = DAG.getNode(ISD::AND, DL, VT, N10.getOperand(0), DAG.getConstant(0xffff0000u, DL, VT));
N11 = DAG.getNode(ISD::AND, DL, VT, N11.getOperand(0), DAG.getConstant(0xffff0000u, DL, VT));
N0 = DAG.getNode(ISD::OR, DL, VT, N00, N10);
N1 = DAG.getNode(ISD::OR, DL, VT, N01, N11);
// Mask17 = 0;
// N00 = DAG.getNode(ISD::SRL, DL, VT, N00.getOperand(0), N00.getOperand(1));
// N01 = DAG.getNode(ISD::SRL, DL, VT, N01.getOperand(0), N01.getOperand(1));
// N10 = DAG.getNode(ISD::AND, DL, VT, N10.getOperand(0), DAG.getConstant(0xffff0000u, DL, VT));
// N11 = DAG.getNode(ISD::AND, DL, VT, N11.getOperand(0), DAG.getConstant(0xffff0000u, DL, VT));
// N0 = DAG.getNode(ISD::OR, DL, VT, N00, N10);
// N1 = DAG.getNode(ISD::OR, DL, VT, N01, N11);
}
}
}
if (!!Mask17 && (!DAG.MaskedValueIsZero(N00, Mask17) ||
!DAG.MaskedValueIsZero(N01, Mask17) ||
!DAG.MaskedValueIsZero(N10, Mask17) ||
!DAG.MaskedValueIsZero(N11, Mask17)))
if (!!Mask17)
return SDValue();
// Use SplitOpsAndApply to handle AVX splitting.