This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

get_condition and conditional move


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]