On Tue, Mar 3, 2026 at 12:18 AM Jakub Jelinek <[email protected]> wrote:
>
> Hi!
>
> The Intel syntax part is missing % before 3, so it always prints {3}
> rather than {k1} or similar.
>
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk?

This testcase fails with binutils 2.35:
```
/tmp/ccf20y5C.s:20: Error: no such instruction: `vmovw xmm0,WORD PTR .LC0[rip]'
/tmp/ccf20y5C.s:21: Error: no such instruction: `vmovw WORD PTR [rbp-18],xmm0'
/tmp/ccf20y5C.s:22: Error: no such instruction: `vmovw xmm0,WORD PTR [rbp-18]'
/tmp/ccf20y5C.s:23: Error: no such instruction: `vmovw WORD PTR [rbp-20],xmm0'
/tmp/ccf20y5C.s:24: Error: no such instruction: `vmovw xmm0,WORD PTR [rbp-18]'
/tmp/ccf20y5C.s:25: Error: no such instruction: `vmovw WORD PTR [rbp-22],xmm0'
/tmp/ccf20y5C.s:26: Error: no such instruction: `vmovw xmm0,WORD PTR [rbp-18]'
/tmp/ccf20y5C.s:27: Error: no such instruction: `vmovw WORD PTR [rbp-24],xmm0'
/tmp/ccf20y5C.s:28: Error: no such instruction: `vmovw xmm0,WORD PTR [rbp-18]'
/tmp/ccf20y5C.s:29: Error: no such instruction: `vmovw WORD PTR [rbp-26],xmm0'
/tmp/ccf20y5C.s:30: Error: no such instruction: `vmovw xmm0,WORD PTR [rbp-18]'
```

Thanks,
Andrew Pinski


>
> 2026-03-03  Jakub Jelinek  <[email protected]>
>
>         PR target/124335
>         * config/i386/sse.md (*avx512f_load<mode>_mask): Use %{%3%} instead of
>         %{3%} for -masm=intel syntax.
>
>         * gcc.target/i386/avx512fp16-pr124335.c: New test.
>
> --- gcc/config/i386/sse.md.jj   2026-03-02 15:42:37.301524399 +0100
> +++ gcc/config/i386/sse.md      2026-03-02 20:08:37.596847221 +0100
> @@ -1744,7 +1744,7 @@ (define_insn "*avx512f_load<mode>_mask"
>           (match_operand:<ssevecmode> 4 "const0_operand")
>           (const_int 1)))]
>    "TARGET_AVX512F"
> -  "vmov<ssescalarmodesuffix>\t{%1, %0%{%3%}%N2|%0%{3%}%N2, %1}"
> +  "vmov<ssescalarmodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
>    [(set_attr "type" "ssemov")
>     (set_attr "prefix" "evex")
>     (set_attr "memory" "load")
> --- gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.c.jj      2026-03-02 
> 20:15:26.543007388 +0100
> +++ gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.c 2026-03-02 
> 20:17:58.529465343 +0100
> @@ -0,0 +1,13 @@
> +/* PR target/124335 */
> +/* { dg-do assemble } */
> +/* { dg-require-effective-target masm_intel } */
> +/* { dg-options "-mavx512fp16 -masm=intel" } */
> +/* { dg-require-effective-target avx512bw } */
> +
> +#include <x86intrin.h>
> +
> +__m128h
> +foo (_Float16 const *x, __mmask8 y)
> +{
> +  return _mm_maskz_load_sh (y, x);
> +}
>
>         Jakub
>

Reply via email to