forked from OSchip/llvm-project
[X86] Remove ANY_EXTEND special case from canReduceVMulWidth
Removing this code doesn't affect any lit tests so it doesn't appear to be tested anymore. I assume it was when it was added, but I guess something else changed? Code coverage report also says its unused. I mostly didn't like that it seemed to count the sign bits as if it was a sign_extend, but then set isPositive as if it was a zero_extend. It feels like we should have picked one interpretation? Differential Revision: https://reviews.llvm.org/D54596 llvm-svn: 346995
This commit is contained in:
parent
04f9d0a0c3
commit
22bfa99448
|
@ -34337,24 +34337,8 @@ static bool canReduceVMulWidth(SDNode *N, SelectionDAG &DAG, ShrinkMode &Mode) {
|
|||
for (unsigned i = 0; i < 2; i++) {
|
||||
SDValue Opd = N->getOperand(i);
|
||||
|
||||
// DAG.ComputeNumSignBits return 1 for ISD::ANY_EXTEND, so we need to
|
||||
// compute signbits for it separately.
|
||||
if (Opd.getOpcode() == ISD::ANY_EXTEND) {
|
||||
// For anyextend, it is safe to assume an appropriate number of leading
|
||||
// sign/zero bits.
|
||||
if (Opd.getOperand(0).getValueType().getVectorElementType() == MVT::i8)
|
||||
SignBits[i] = 25;
|
||||
else if (Opd.getOperand(0).getValueType().getVectorElementType() ==
|
||||
MVT::i16)
|
||||
SignBits[i] = 17;
|
||||
else
|
||||
return false;
|
||||
IsPositive[i] = true;
|
||||
} else {
|
||||
SignBits[i] = DAG.ComputeNumSignBits(Opd);
|
||||
if (DAG.SignBitIsZero(Opd))
|
||||
IsPositive[i] = true;
|
||||
}
|
||||
IsPositive[i] = DAG.SignBitIsZero(Opd);
|
||||
}
|
||||
|
||||
bool AllPositive = IsPositive[0] && IsPositive[1];
|
||||
|
|
Loading…
Reference in New Issue