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

Reply via email to