http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60205
Bug ID: 60205 Summary: No ABU warning for AVX-512 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com CC: kirill.yukhin at intel dot com [hjl@gnu-6 avx512-1]$ cat w.i typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__)); typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__)); __m256i foo1 (__m256i x, __m256i y, __m256i z) { return z; } __m512i foo2 (__m512i x, __m512i y, __m512i z) { return z; } [hjl@gnu-6 avx512-1]$ make w.s /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -mavx512f -O2 -S w.i [hjl@gnu-6 avx512-1]$ make clean rm -f *.s *.o *.i.* *.c.* [hjl@gnu-6 avx512-1]$ cat w.i typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__)); typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__)); __m256i foo1 (__m256i x, __m256i y, __m256i z) { return z; } __m512i foo2 (__m512i x, __m512i y, __m512i z) { return z; } [hjl@gnu-6 avx512-1]$ /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O2 -S w.i w.i: In function ‘foo1’: w.i:6:1: warning: AVX vector return without AVX enabled changes the ABI { ^ w.i:5:1: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6 foo1 (__m256i x, __m256i y, __m256i z) ^ w.i:5:1: warning: AVX vector argument without AVX enabled changes the ABI [hjl@gnu-6 avx512-1]$ I am expecting similar warnings for AVX-512.