https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111051
--- Comment #1 from Sergei Trofimovich <slyfox at gcc dot gnu.org> --- Found this difference, looks reasonable? // $ cat a.cc #include <immintrin.h> #pragma GCC target("avx512vl,avx512dq") void bug(__m256i i) { volatile auto v1 = _mm256_cvtepi64_pd(i); } Difference: $ g++-13 -c a.cc # ok $ g++-14 -c a.cc In file included from /<<NIX>>/gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/immintrin.h:71, from a.cc:1: /<<NIX>>/gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/avx512vldqintrin.h: In function '__m256d _mm256_cvtepi64_pd(__m256i)': /<<NIX>>/gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/avx512vldqintrin.h:910:1: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6 910 | _mm256_cvtepi64_pd (__m256i __A) | ^~~~~~~~~~~~~~~~~~ a.cc:7:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi] 7 | } | ^ In file included from /<<NIX>>/gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/immintrin.h:43: /<<NIX>>/gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/avxintrin.h:1238:1: error: inlining failed in call to 'always_inline' '__m256d _mm256_setzero_pd()': target specific option mismatch 1238 | _mm256_setzero_pd (void) | ^~~~~~~~~~~~~~~~~ /<<NIX>>/gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/avx512vldqintrin.h:912:10: note: called from here 912 | return (__m256d) __builtin_ia32_cvtqq2pd256_mask ((__v4di) __A, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 913 | (__v4df) | ~~~~~~~~ 914 | _mm256_setzero_pd (), | ~~~~~~~~~~~~~~~~~~~~~ 915 | (__mmask8) -1); | ~~~~~~~~~~~~~~