https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76731
Bug ID: 76731 Summary: [AVX512] _mm512_i32gather_epi32 and other scatter/gather routines have incorrect signature Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: wen...@mitsuba-renderer.org Target Milestone: --- All of the scatter/gather intrinsics in avx512intrin.h use int/float/double pointers, which is incorrect. For intsance: extern __inline __m512i __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) _mm512_i32gather_epi32 (__m512i __index, int const *__addr, int __scale) These should use void*/const void* pointers according to Intel (see e.g. https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm512_i32gather_epi32&expand=2778,2777) This is a departure from prior mask/gather intrinsics, where type information turned out to be a bad idea for various reasons (e.g. aliasing analysis)