middle-end/103193 - avoid canonicalizing <= and >= to == for floats
This avoids doing aforementioned canoncalization when -ftrapping-math is in effect and we honor NaNs. 2021-11-15 Richard Biener <rguenther@suse.de> PR middle-end/103193 * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0) with NaNs and -ftrapping-math.
This commit is contained in:
parent
5bca26742c
commit
d9ca2ca381
@ -4671,7 +4671,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
|
||||
(if (! FLOAT_TYPE_P (TREE_TYPE (@0))
|
||||
|| ! HONOR_NANS (@0))
|
||||
{ constant_boolean_node (true, type); }
|
||||
(if (cmp != EQ_EXPR)
|
||||
(if (cmp != EQ_EXPR
|
||||
/* With -ftrapping-math conversion to EQ loses an exception. */
|
||||
&& (! FLOAT_TYPE_P (TREE_TYPE (@0))
|
||||
|| ! flag_trapping_math))
|
||||
(eq @0 @0)))))
|
||||
(for cmp (ne gt lt)
|
||||
(simplify
|
||||
|
Loading…
x
Reference in New Issue
Block a user