forked from OSchip/llvm-project
[AArch64] Do not abort if overflow check does not use EQ or NE.
As suggested by Eli Friedman, instead of aborting if an overflow check uses something other than SETEQ or SETNE, simply do not apply the optimization. Differential Revision: https://reviews.llvm.org/D39147 llvm-svn: 319837
This commit is contained in:
parent
49fbcd45e4
commit
3e40883e4c
|
@ -4006,9 +4006,8 @@ SDValue AArch64TargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const {
|
|||
|
||||
// Optimize {s|u}{add|sub|mul}.with.overflow feeding into a branch
|
||||
// instruction.
|
||||
if (isOverflowIntrOpRes(LHS) && isOneConstant(RHS)) {
|
||||
assert((CC == ISD::SETEQ || CC == ISD::SETNE) &&
|
||||
"Unexpected condition code.");
|
||||
if (isOverflowIntrOpRes(LHS) && isOneConstant(RHS) &&
|
||||
(CC == ISD::SETEQ || CC == ISD::SETNE)) {
|
||||
// Only lower legal XALUO ops.
|
||||
if (!DAG.getTargetLoweringInfo().isTypeLegal(LHS->getValueType(0)))
|
||||
return SDValue();
|
||||
|
|
Loading…
Reference in New Issue