This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: get_condition and conditional move
- To: hjl at lucon dot org (H.J. Lu)
- Subject: Re: get_condition and conditional move
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Mon, 8 Jun 1998 12:00:50 +0100 (BST)
- Cc: john at feith dot com, egcs at cygnus dot com
> if (TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT
> && did_reverse_condition && code != NE && code != EQ
> && ! flag_fast_math
> && GET_MODE_CLASS (GET_MODE (op0)) == MODE_FLOAT)
> return 0;
>
> That means
>
> double x;
> int y;
> ...
> if (x > 0.2)
> y = 1;
>
> will never turn into a conditional move for IEEE math and flag_fast_math
> is not zero. Any reasons for that?
No, read again. This test applies only when flag_fast_math is zero.
Reversing a inequality comparison does not work correctly when handling NaNs.