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.
(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