https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86511
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Target| |alpha Known to work| |7.3.1 Target Milestone|--- |9.0 Summary|Unordered comparisons are |[9 Regression] Unordered |expanded with branchless |comparisons are expanded |code |with branchless code Known to fail| |9.0 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- What about GCC 8? Note that the middle-end thinks only SNaNs can cause UNGE_EXPR to trap which I belive is correct. It looks like this goes wrong somewhere in expansion which seems to expand this as UNORDERED || GE w/o protecting the GE properly. It looks like we do not have optabs for UNGE, but only unord_optab. I guess you need to trace expansion to see where it goes wrong (maybe it's just a bug in if-conversion...)