diff options
Diffstat (limited to 'gcc/simplify-rtx.c')
| -rw-r--r-- | gcc/simplify-rtx.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index ae1fea7..e3e2999 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3236,7 +3236,9 @@ simplify_const_relational_operation (enum rtx_code code, case LT: /* Optimize abs(x) < 0.0. */ - if (trueop1 == CONST0_RTX (mode) && !HONOR_SNANS (mode)) + if (trueop1 == CONST0_RTX (mode) + && !HONOR_SNANS (mode) + && !(flag_wrapv && INTEGRAL_MODE_P (mode))) { tem = GET_CODE (trueop0) == FLOAT_EXTEND ? XEXP (trueop0, 0) : trueop0; @@ -3247,7 +3249,9 @@ simplify_const_relational_operation (enum rtx_code code, case GE: /* Optimize abs(x) >= 0.0. */ - if (trueop1 == CONST0_RTX (mode) && !HONOR_NANS (mode)) + if (trueop1 == CONST0_RTX (mode) + && !HONOR_NANS (mode) + && !(flag_wrapv && INTEGRAL_MODE_P (mode))) { tem = GET_CODE (trueop0) == FLOAT_EXTEND ? XEXP (trueop0, 0) : trueop0; |
