https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89750
Bug ID: 89750 Summary: Wrong code for _mm_comi_round_ss Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com CC: ubizjak at gmail dot com Target Milestone: --- Target: i386, x86-64 [hjl@gnu-cfl-2 pr86444]$ cat b.c #include <immintrin.h> __m128 x, y; void init_regs() { x = _mm_set_ps(1.0,1.0,1.0,1.0); y = _mm_set_ps(2.0,2.0,2.0,2.0); } int avx512f_test (void) { return _mm_comi_round_ss (x, y, _CMP_LT_OS, _MM_FROUND_NO_EXC); } int main() { init_regs(); if (!avx512f_test()) __builtin_abort (); return 0; } [hjl@gnu-cfl-2 pr86444]$ gcc -O2 -mavx512f b.c [hjl@gnu-cfl-2 pr86444]$ ./sde -- ./a.out Aborted [hjl@gnu-cfl-2 pr86444]$ clang -O2 -mavx512f b.c [hjl@gnu-cfl-2 pr86444]$ ./sde -- ./a.out [hjl@gnu-cfl-2 pr86444]$