diff options
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 4fd98d010d3..cab4fbdf6b1 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1738,6 +1738,10 @@ noce_try_abs (struct noce_if_info *if_info) rtx cond, earliest, target, seq, a, b, c; int negate; + /* Reject modes with signed zeros. */ + if (HONOR_SIGNED_ZEROS (GET_MODE (if_info->x))) + return FALSE; + /* Recognize A and B as constituting an ABS or NABS. The canonical form is a branch around the negation, taken when the object is the first operand of a comparison against 0 that evaluates to true. */ |