http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59797
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Yukhin Kirill from comment #1) > Sorry, didn't get the problem. > > According to output you provided - GCC warns ABI changes > > Here is analogue for AVX2: > $ cat 2.c > typedef long long __m256i __attribute__ ((__vector_size__ (32), > __may_alias__)); > > __m256i > f1(__m256i x, __m256i y) > { > return y; > } > $ gcc -S 2.c > 2.c: In function ‘f1’: > 2.c:4:1: note: The ABI for passing parameters with 32-byte alignment has > changed in GCC 4.6 This isn't a ABI change warning. It just informs users that GCC has changed ABI in GCC 4.6. > f1(__m256i x, __m256i y) > ^ > 2.c:4:1: warning: AVX vector argument without AVX enabled changes the ABI > [enabled by default] This is the ABI change warning for __m256i when AVX is disabled. > Difference is that AVX[2] warns about using data types without enabling > AVX2. Is that the case We need a similar warning for __m512i when AVX-512 is disabled.