combine.c (known_cond): Check mode of each operand to determine if COND is comparing floating point values.
* combine.c (known_cond): Check mode of each operand to determine if COND is comparing floating point values. From-SVN: r47855
This commit is contained in:
parent
9aaceb4b3e
commit
805f169411
|
@ -1,3 +1,8 @@
|
|||
Mon Dec 10 15:54:27 2001 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* combine.c (known_cond): Check mode of each operand to determine
|
||||
if COND is comparing floating point values.
|
||||
|
||||
2001-12-10 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* rs6000.h (processor_type): Add PPC405.
|
||||
|
|
|
@ -7351,8 +7351,14 @@ known_cond (x, cond, reg, val)
|
|||
if (side_effects_p (x))
|
||||
return x;
|
||||
|
||||
if (cond == EQ && rtx_equal_p (x, reg) && !FLOAT_MODE_P (cond))
|
||||
/* If either operand of the condition is a floating point value,
|
||||
then we have to avoid collapsing an EQ comparison. */
|
||||
if (cond == EQ
|
||||
&& rtx_equal_p (x, reg)
|
||||
&& ! FLOAT_MODE_P (GET_MODE (x))
|
||||
&& ! FLOAT_MODE_P (GET_MODE (val)))
|
||||
return val;
|
||||
|
||||
if (cond == UNEQ && rtx_equal_p (x, reg))
|
||||
return val;
|
||||
|
||||
|
|
Loading…
Reference in New Issue