mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
Converted an overly aggressive assert to a conditional check in AddCombineTo64bitMLAL.
Said assert assumes that ADDC will always have a glue node as its second argument and is checked before we even know that we are actually performing the relevant MLAL optimization. This is incorrect since on ARM we *CAN* codegen ADDC with a use list based second argument. Thus to have both effects, I converted the assert to a conditional check which if it fails we do not perform the optimization. In terms of tests I can not produce an ADDC from the IR level until I get in my multiprecision optimization patch which is forthcoming. The tests for said patch would cause this assert to fail implying that said tests will provide the relevant tests. llvm-svn: 184230
This commit is contained in:
parent
9c21fca143
commit
dde9797dc2
@ -7948,8 +7948,11 @@ static SDValue AddCombineTo64bitMLAL(SDNode *AddcNode,
|
||||
|
||||
assert(AddcNode->getNumValues() == 2 &&
|
||||
AddcNode->getValueType(0) == MVT::i32 &&
|
||||
AddcNode->getValueType(1) == MVT::Glue &&
|
||||
"Expect ADDC with two result values: i32, glue");
|
||||
"Expect ADDC with two result values. First: i32");
|
||||
|
||||
// Check that we have a glued ADDC node.
|
||||
if (AddcNode->getValueType(1) != MVT::Glue)
|
||||
return SDValue();
|
||||
|
||||
// Check that the ADDC adds the low result of the S/UMUL_LOHI.
|
||||
if (AddcOp0->getOpcode() != ISD::UMUL_LOHI &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user