diff options
author | James A. Morrison <phython@gcc.gnu.org> | 2005-07-28 04:40:05 +0000 |
---|---|---|
committer | James A. Morrison <phython@gcc.gnu.org> | 2005-07-28 04:40:05 +0000 |
commit | 77d1d8e01ff69521974d20c0f3fef75e3c2f8614 (patch) | |
tree | 21416a93a08c2c026822da31c2e1d7f8bb065aef /gcc/simplify-rtx.c | |
parent | ff08cbee5d5465c88852dbb3cff344c45d98c95e (diff) | |
download | gcc-77d1d8e01ff69521974d20c0f3fef75e3c2f8614.zip gcc-77d1d8e01ff69521974d20c0f3fef75e3c2f8614.tar.gz gcc-77d1d8e01ff69521974d20c0f3fef75e3c2f8614.tar.bz2 |
re PR rtl-optimization/23047 (Combine ignores flag_wrapv)
2005-07-27 James A. Morrison <phython@gcc.gnu.org>
PR rtl-optimization/23047
* simplify-rtx.c (simplify_const_relational_operation): Respect
flag_wrapv for comparisons with ABS.
From-SVN: r102459
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; |