> -----Original Message-----
> From: Jakub Jelinek <[email protected]>
> Sent: Wednesday, December 17, 2025 2:07 PM
> To: Uros Bizjak <[email protected]>; Liu, Hongtao <[email protected]>
> Cc: [email protected]
> Subject: [PATCH] i386: Obfuscate avx10_2bf16intrin.h inline function
> arguments [PR123155]
> 
> Hi!
> 
> Function arguments in installed headers need to be obfuscated (unlike object-
> like macro arguments), as e.g.
> #define B +++
> #include <x86intrin.h>
> is a valid program.  Most of the arguments are obfuscated, but some leaked in
> in the avx10_2bf16intrin.h header.
> gcc -S -O2 -O2 -Werror-implicit-function-declaration -march=novalake -
> msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -
> mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -
> mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -
> mxsaves -mclflushopt -mavx512vp2intersect -mclwb -mmwaitx -mclzero -
> mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -
> mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -
> msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-
> movrs -g -dA gcc/testsuite/gcc.target/i386/sse-13.c -fno-eliminate-unused-
> debug-{symbols,types} -o sse-13.s grep -A1 DW_TAG_formal_parameter sse-
> 13.s | grep DW_AT_name | grep -v 'scii "__' | grep -v 'DW_AT_name: "__'
> shows arguments not prefixed with __ and the following patch fixes them.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk and later
> on backport to 15 branch)?
Ok.

> 
> 2025-12-17  Jakub Jelinek  <[email protected]>
> 
>       PR target/123155
>       * config/i386/avx10_2bf16intrin.h (_mm512_roundscale_pbh,
>       _mm512_mask_roundscale_pbh, _mm512_maskz_roundscale_pbh,
>       _mm256_roundscale_pbh, _mm256_mask_roundscale_pbh,
>       _mm256_maskz_roundscale_pbh, _mm_roundscale_pbh,
>       _mm_mask_roundscale_pbh, _mm_maskz_roundscale_pbh,
>       _mm512_reduce_pbh, _mm512_mask_reduce_pbh,
> _mm512_maskz_reduce_pbh,
>       _mm256_reduce_pbh, _mm256_mask_reduce_pbh,
> _mm256_maskz_reduce_pbh,
>       _mm_reduce_pbh, _mm_mask_reduce_pbh,
> _mm_maskz_reduce_pbh): Rename
>       B argument to __B.
> 
> --- gcc/config/i386/avx10_2bf16intrin.h.jj    2025-06-04
> 21:49:12.023619543 +0200
> +++ gcc/config/i386/avx10_2bf16intrin.h       2025-12-16
> 14:14:33.871603625 +0100
> @@ -1339,38 +1339,38 @@ _mm_maskz_getexp_pbh (__mmask8 __U,
> __m1  #ifdef __OPTIMIZE__  extern __inline__ __m512bh  __attribute__
> ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm512_roundscale_pbh (__m512bh __A, int B)
> +_mm512_roundscale_pbh (__m512bh __A, int __B)
>  {
>    return (__m512bh)
> -    __builtin_ia32_rndscalebf16512_mask (__A, B,
> +    __builtin_ia32_rndscalebf16512_mask (__A, __B,
>                                        (__v32bf) _mm512_setzero_si512 (),
>                                        (__mmask32) -1);
>  }
> 
>  extern __inline__ __m512bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm512_mask_roundscale_pbh (__m512bh __W, __mmask32 __U,
> __m512bh __A, int B)
> +_mm512_mask_roundscale_pbh (__m512bh __W, __mmask32 __U,
> __m512bh __A,
> +int __B)
>  {
>    return (__m512bh)
> -    __builtin_ia32_rndscalebf16512_mask (__A, B, __W,  __U);
> +    __builtin_ia32_rndscalebf16512_mask (__A, __B, __W, __U);
>  }
> 
>  extern __inline__ __m512bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm512_maskz_roundscale_pbh (__mmask32 __U, __m512bh __A, int B)
> +_mm512_maskz_roundscale_pbh (__mmask32 __U, __m512bh __A, int
> __B)
>  {
>    return (__m512bh)
> -    __builtin_ia32_rndscalebf16512_mask (__A, B,
> +    __builtin_ia32_rndscalebf16512_mask (__A, __B,
>                                        (__v32bf) _mm512_setzero_si512 (),
>                                        __U);
>  }
> 
>  extern __inline__ __m256bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm256_roundscale_pbh (__m256bh __A, int B)
> +_mm256_roundscale_pbh (__m256bh __A, int __B)
>  {
>    return (__m256bh)
> -    __builtin_ia32_rndscalebf16256_mask (__A, B,
> +    __builtin_ia32_rndscalebf16256_mask (__A, __B,
>                                        (__v16bf) _mm256_setzero_si256 (),
>                                        (__mmask16) -1);
>  }
> @@ -1378,28 +1378,28 @@ _mm256_roundscale_pbh (__m256bh __A, int
> extern __inline__ __m256bh  __attribute__ ((__gnu_inline__,
> __always_inline__, __artificial__))  _mm256_mask_roundscale_pbh
> (__m256bh __W, __mmask16 __U,
> -                         __m256bh __A, int B)
> +                         __m256bh __A, int __B)
>  {
>    return (__m256bh)
> -    __builtin_ia32_rndscalebf16256_mask (__A, B, __W, __U);
> +    __builtin_ia32_rndscalebf16256_mask (__A, __B, __W, __U);
>  }
> 
>  extern __inline__ __m256bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm256_maskz_roundscale_pbh (__mmask16 __U, __m256bh __A, int B)
> +_mm256_maskz_roundscale_pbh (__mmask16 __U, __m256bh __A, int
> __B)
>  {
>    return (__m256bh)
> -    __builtin_ia32_rndscalebf16256_mask (__A, B,
> +    __builtin_ia32_rndscalebf16256_mask (__A, __B,
>                                        (__v16bf) _mm256_setzero_si256 (),
>                                        __U);
>  }
> 
>  extern __inline__ __m128bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm_roundscale_pbh (__m128bh __A, int B)
> +_mm_roundscale_pbh (__m128bh __A, int __B)
>  {
>    return (__m128bh)
> -    __builtin_ia32_rndscalebf16128_mask (__A, B,
> +    __builtin_ia32_rndscalebf16128_mask (__A, __B,
>                                        (__v8bf) _mm_setzero_si128 (),
>                                        (__mmask8) -1);
>  }
> @@ -1407,18 +1407,18 @@ _mm_roundscale_pbh (__m128bh __A, int B)
> extern __inline__ __m128bh  __attribute__ ((__gnu_inline__,
> __always_inline__, __artificial__))  _mm_mask_roundscale_pbh (__m128bh
> __W, __mmask8 __U,
> -                      __m128bh __A, int B)
> +                      __m128bh __A, int __B)
>  {
>    return (__m128bh)
> -    __builtin_ia32_rndscalebf16128_mask (__A, B, __W, __U);
> +    __builtin_ia32_rndscalebf16128_mask (__A, __B, __W, __U);
>  }
> 
>  extern __inline__ __m128bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm_maskz_roundscale_pbh (__mmask8 __U, __m128bh __A, int B)
> +_mm_maskz_roundscale_pbh (__mmask8 __U, __m128bh __A, int __B)
>  {
>    return (__m128bh)
> -    __builtin_ia32_rndscalebf16128_mask (__A, B,
> +    __builtin_ia32_rndscalebf16128_mask (__A, __B,
>                                        (__v8bf) _mm_setzero_si128 (),
>                                        __U);
>  }
> @@ -1469,10 +1469,10 @@ _mm_maskz_roundscale_pbh (__mmask8 __U,
> #ifdef __OPTIMIZE__  extern __inline__ __m512bh  __attribute__
> ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_reduce_pbh
> (__m512bh __A, int B)
> +_mm512_reduce_pbh (__m512bh __A, int __B)
>  {
>    return (__m512bh)
> -    __builtin_ia32_reducebf16512_mask (__A, B,
> +    __builtin_ia32_reducebf16512_mask (__A, __B,
>                                      (__v32bf) _mm512_setzero_si512 (),
>                                      (__mmask32) -1);
>  }
> @@ -1480,28 +1480,28 @@ _mm512_reduce_pbh (__m512bh __A, int B)
> extern __inline__ __m512bh  __attribute__ ((__gnu_inline__,
> __always_inline__, __artificial__))  _mm512_mask_reduce_pbh (__m512bh
> __W, __mmask32 __U,
> -                     __m512bh __A, int B)
> +                     __m512bh __A, int __B)
>  {
>    return (__m512bh)
> -    __builtin_ia32_reducebf16512_mask (__A, B, __W,  __U);
> +    __builtin_ia32_reducebf16512_mask (__A, __B, __W,  __U);
>  }
> 
>  extern __inline__ __m512bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm512_maskz_reduce_pbh (__mmask32 __U, __m512bh __A, int B)
> +_mm512_maskz_reduce_pbh (__mmask32 __U, __m512bh __A, int __B)
>  {
>    return (__m512bh)
> -    __builtin_ia32_reducebf16512_mask (__A, B,
> +    __builtin_ia32_reducebf16512_mask (__A, __B,
>                                         (__v32bf) _mm512_setzero_si512
> (),
>                                         __U);
>  }
> 
>  extern __inline__ __m256bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm256_reduce_pbh (__m256bh __A, int B)
> +_mm256_reduce_pbh (__m256bh __A, int __B)
>  {
>    return (__m256bh)
> -    __builtin_ia32_reducebf16256_mask (__A, B,
> +    __builtin_ia32_reducebf16256_mask (__A, __B,
>                                      (__v16bf) _mm256_setzero_si256 (),
>                                      (__mmask16) -1);
>  }
> @@ -1509,28 +1509,28 @@ _mm256_reduce_pbh (__m256bh __A, int B)
> extern __inline__ __m256bh  __attribute__ ((__gnu_inline__,
> __always_inline__, __artificial__))  _mm256_mask_reduce_pbh (__m256bh
> __W, __mmask16 __U,
> -                     __m256bh __A, int B)
> +                     __m256bh __A, int __B)
>  {
>    return (__m256bh)
> -    __builtin_ia32_reducebf16256_mask (__A, B, __W, __U);
> +    __builtin_ia32_reducebf16256_mask (__A, __B, __W, __U);
>  }
> 
>  extern __inline__ __m256bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm256_maskz_reduce_pbh (__mmask16 __U, __m256bh __A, int B)
> +_mm256_maskz_reduce_pbh (__mmask16 __U, __m256bh __A, int __B)
>  {
>    return (__m256bh)
> -    __builtin_ia32_reducebf16256_mask (__A, B,
> +    __builtin_ia32_reducebf16256_mask (__A, __B,
>                                      (__v16bf) _mm256_setzero_si256 (),
>                                      __U);
>  }
> 
>  extern __inline__ __m128bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm_reduce_pbh (__m128bh __A, int B)
> +_mm_reduce_pbh (__m128bh __A, int __B)
>  {
>    return (__m128bh)
> -    __builtin_ia32_reducebf16128_mask (__A, B,
> +    __builtin_ia32_reducebf16128_mask (__A, __B,
>                                      (__v8bf) _mm_setzero_si128 (),
>                                      (__mmask8) -1);
>  }
> @@ -1538,18 +1538,18 @@ _mm_reduce_pbh (__m128bh __A, int B)
> extern __inline__ __m128bh  __attribute__ ((__gnu_inline__,
> __always_inline__, __artificial__))  _mm_mask_reduce_pbh (__m128bh __W,
> __mmask8 __U,
> -                  __m128bh __A, int B)
> +                  __m128bh __A, int __B)
>  {
>    return (__m128bh)
> -    __builtin_ia32_reducebf16128_mask (__A, B, __W, __U);
> +    __builtin_ia32_reducebf16128_mask (__A, __B, __W, __U);
>  }
> 
>  extern __inline__ __m128bh
>  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -
> _mm_maskz_reduce_pbh (__mmask8 __U, __m128bh __A, int B)
> +_mm_maskz_reduce_pbh (__mmask8 __U, __m128bh __A, int __B)
>  {
>    return (__m128bh)
> -    __builtin_ia32_reducebf16128_mask (__A, B,
> +    __builtin_ia32_reducebf16128_mask (__A, __B,
>                                      (__v8bf) _mm_setzero_si128 (),
>                                      __U);
>  }
> 
>       Jakub

Reply via email to