diff options
author | Jan Hubicka <jh@suse.cz> | 2001-02-28 17:19:16 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-02-28 16:19:16 +0000 |
commit | 2450703cc08737027b115c2da82db83a93cd4ecd (patch) | |
tree | 5a65dfb2686e80f00ce9875d6bf3f7024961fc6c /gcc | |
parent | e5844e6d3984a967559f02386556127d12c8746f (diff) | |
download | gcc-2450703cc08737027b115c2da82db83a93cd4ecd.zip gcc-2450703cc08737027b115c2da82db83a93cd4ecd.tar.gz gcc-2450703cc08737027b115c2da82db83a93cd4ecd.tar.bz2 |
jump.c (reversed_comparison_code_parts): Allow reversal of unordered compares in -ffast-math mode...
* jump.c (reversed_comparison_code_parts): Allow reversal of
unordered compares in -ffast-math mode; reverse ordered compares
for FP even w/o -ffast-math.
From-SVN: r40118
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/jump.c | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6c3fa5d..b8a2020 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Wed Feb 28 17:17:29 CET 2001 Jan Hubicka <jh@suse.cz> + + * jump.c (reversed_comparison_code_parts): Allow reversal of + unordered compares in -ffast-math mode; reverse ordered compares + for FP even w/o -ffast-math. + 2001-02-27 Richard Henderson <rth@redhat.com> * print-rtl.c (print_rtx) [i]: Don't print field five on @@ -1782,7 +1782,11 @@ reversed_comparison_code_parts (code, arg0, arg1, insn) case UNLE: case UNGT: case UNGE: - /* We don't have safe way to reverse these yet. */ + /* We don't have safe way to reverse these yet - we would need + ordered compares that may not trap. */ + if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT + || flag_fast_math) + return reverse_condition_maybe_unordered (code); return UNKNOWN; default: break; @@ -1841,6 +1845,12 @@ reversed_comparison_code_parts (code, arg0, arg1, insn) } } + /* In case of floating point modes, we may reverse here, since + we will be always converting an ordered compare to unordered. + The unsafe code has been caught earlier. */ + if (FLOAT_MODE_P (mode)) + return reverse_condition_maybe_unordered (code); + /* An integer condition. */ if (GET_CODE (arg0) == CONST_INT || (GET_MODE (arg0) != VOIDmode |