https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103193
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- Here is compilable testcase: _Bool a (void) { #pragma STDC FENV_ACCESS ON float f; _Bool b; f = __builtin_nan (""); b = f >= f; // ucomiss (wrong), comiss (correct) return b; } Tree optimizers (_.optimized dump) already give us: <bb 2> : f_1 = Nan; b_2 = f_1 == f_1; _3 = b_2; However, f_1 == f_1 expands with UNSPEC_NOTRAP RTX which gives us ucomiss.