forked from OSchip/llvm-project
[UBSan] Cannot negate smallest negative signed integer
Silence warning Undefined Behavior Sanitzer warning: runtime error: negation of -9223372036854775808 cannot be represented in type 'int64_t' (aka 'long'); cast to an unsigned type to negate this value to itself Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D90710
This commit is contained in:
parent
3701e33a22
commit
900ec97bbe
|
@ -6239,7 +6239,8 @@ SDValue AArch64TargetLowering::LowerSELECT_CC(ISD::CondCode CC, SDValue LHS,
|
|||
// instead of a CSEL in that case.
|
||||
if (TrueVal == ~FalseVal) {
|
||||
Opcode = AArch64ISD::CSINV;
|
||||
} else if (TrueVal == -FalseVal) {
|
||||
} else if (FalseVal > std::numeric_limits<int64_t>::min() &&
|
||||
TrueVal == -FalseVal) {
|
||||
Opcode = AArch64ISD::CSNEG;
|
||||
} else if (TVal.getValueType() == MVT::i32) {
|
||||
// If our operands are only 32-bit wide, make sure we use 32-bit
|
||||
|
|
Loading…
Reference in New Issue