https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104257
Bug ID: 104257 Summary: rs6000/*intrin.h headers using non-uglified automatic variables Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- As I've mentioned in https://gcc.gnu.org/pipermail/gcc-patches/2022-January/589296.html various config/rs6000/*intrin.h headers, while they uglify parameter names, don't uglify automatic variables/local types etc. in the inline functions. Example of proper uglification: extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_blend_epi16 (__m128i __A, __m128i __B, const int __imm8) { __v16qi __charmask = vec_splats ((signed char) __imm8); __charmask = vec_gb (__charmask); __v8hu __shortmask = (__v8hu) vec_unpackh (__charmask); #ifdef __BIG_ENDIAN__ __shortmask = vec_reve (__shortmask); #endif return (__m128i) vec_sel ((__v8hu) __A, (__v8hu) __B, __shortmask); } example of missing uglification: extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi8 (__m128i const __A, int const __D, int const __N) { __v16qi result = (__v16qi)__A; result [__N & 0xf] = __D; return (__m128i) result; } result isn't a reserved identifier, so #define result 1 + 2 #include <x86intrin.h> will not work.