https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106113
--- Comment #3 from kong lingling <lingling.kong7 at gmail dot com> --- (In reply to Jakub Jelinek from comment #1) > Has the definition of these intrinsics changed over time? Yes, intrinsic `_mm_comieq_ss ` old operation is `RETURN ( a[31:0] == b[31:0] ) ? 1 : 0`, and new operation update is `RETURN ( a[31:0] != NaN AND b[31:0] != NaN AND a[31:0] == b[31:0] ) ? 1 : 0`. > Because e.g. clang up to 3.8.1 also matches gcc behavior of testing LTGT for > the *neq* and UNEQ for *eq* intrinsics. > Note, changing all UNEQ to EQ and LTGT to NE in the COMI section of > i386-builtin.def doesn't do the trick.