https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123307
--- Comment #3 from Igor Shevlyakov <igor at tachyum dot com> ---
parsing the rest of dumps (produced with -O1):
in .sincos:
int f2 (double a, double b)
{
int iftmp.0_1;
_Bool _5;
_Bool _8;
_Bool _9;
<bb 2> [local count: 1073741824]:
_5 = a_2(D) == b_3(D);
_8 = a_2(D) >= b_3(D);
_9 = _5 & _8;
iftmp.0_1 = (int) _9;
return iftmp.0_1;
}
---
Previous transofrmation was ok, as even that <= (signaling) turned to ==
(quiet) it would be false on NaN so 2nd comparison will still be evaluated and
signal.
But in .reassoc2 it drops it:
;; Function f2 (f2, funcdef_no=1, decl_uid=11103, cgraph_uid=2, symbol_order=1)
;; 1 loops found
;;
;; Loop 0
;; header 0, latch 1
;; depth 0, outer -1
;; nodes: 0 1 2
;; 2 succs { 1 }
int f2 (double a, double b)
{
int iftmp.0_1;
_Bool _5;
_Bool _7;
_Bool _8;
_Bool _9;
<bb 2> [local count: 1073741824]:
_7 = a_2(D) == b_3(D);
_5 = a_2(D) == b_3(D);
_8 = a_2(D) >= b_3(D);
_9 = _7;
iftmp.0_1 = (int) _9;
return iftmp.0_1;
}