This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
get_condition and conditional move
- To: john at feith dot com (John Wehle)
- Subject: get_condition and conditional move
- From: hjl at lucon dot org (H.J. Lu)
- Date: Sun, 7 Jun 1998 10:57:27 -0700 (PDT)
- Cc: egcs at cygnus dot com
Hi,
While working on PPro conditional move, I found this in get_condition:
/* If this was floating-point and we reversed anything other than an
EQ or NE, return zero. */
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?
Thanks.
H.J.