https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87467
Bug ID: 87467 Summary: Incorrect function parameter for _mm512_abs_pd in `include/avx512fintrin.h` Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: manodeep at gmail dot com Target Milestone: --- While trying to compile an AVX512F kernel containing vector intrinsics, I encountered a warning from gcc 7.3.0: ---- /apps/skylake/software/core/gcccore/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/avx512fintrin.h:7301:1: note: expected '__m512 {aka __vector(16) float}' but argument is of type '__m512d {aka __vector(8) double}' _mm512_abs_pd (__m512 __A) ---- `_mm512_abs_pd` refers to the double precision vector registers (https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm512_abs_pd&expand=5236,5298,54). It looks like the bug is present in the new gcc-8 branch as well: https://github.com/gcc-mirror/gcc/blob/gcc-8-branch/gcc/config/i386/avx512fintrin.h#L7730 Simply replacing `_mm512_abs_pd (__m512 __A)` with `_mm512_abs_pd (__m512d __A)` should fix the problem. Please let me know if you need any further info. Cheers, Dr. Manodeep Sinha, Centre for Astrophysics & Supercomputing, Swinburne University of Technology, Hawthorn, VIC 3122.