https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111127
Bug ID: 111127 Summary: Wrong code for avx512ne2ps2bf16_maskz intrinsics since gcc13 Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: wwwhhhyyy333 at gmail dot com Target Milestone: --- cat test.c #include <immintrin.h> __m512bh cvttest(__mmask32 k, __m512 a, __m512 b) { return _mm512_maskz_cvtne2ps_pbh (k,a,b); } gcc -O2 -mavx512bf16 kmovd %edi, %k1 vcvtne2ps2bf16 %zmm0, %zmm1, %zmm0{%k1}{z} ret The code is wrong compared to clang, the input operand order was inverted. See https://godbolt.org/z/b161deerY