https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111051
Bug ID: 111051 Summary: [14 Regression] highway-1.0.6 fails to build as gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/inc lude/avxintrin.h:1238:1: error: inlining failed in call to 'always_inline' '__m256d _mm256_setzero_pd()': target specific option mismatch Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: slyfox at gcc dot gnu.org Target Milestone: --- Observed build failure on today's gcc from r14-3296-gdc48d1d1d44587 against highway-1.0.6 ( https://github.com/google/highway ). I have not managed to extract nice example ot of it yet, but maybe it's obvious to you? The (somewhat big) reproducer is: $ git clone https://github.com/google/highway $ cd highway $ mkdir b $ cd b $ cmake .. -DCMAKE_BUILD_TYPE=Release $ make ... LANG=C /nix/store/vmrxs83fhqs6d3gsyg97hh0lbfzhk9jl-gcc-wrapper-14.0.0/bin/g++ -DHWY_STATIC_DEFINE -DTOOLCHAIN_MISS_ASM_HWCAP_H -I/home/slyfox/dev/git/highway -isystem /home/slyfox/dev/git/highway/b/googletest-src/googletest/include -isystem /home/slyfox/dev/git/highway/b/googletest-src/googletest -O3 -DNDEBUG -fPIE -fvisibility=hidden -fvisibility-inlines-hidden -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\" -fmerge-all-constants -Wall -Wextra -Wconversion -Wsign-conversion -Wvla -Wnon-virtual-dtor -fmath-errno -fno-exceptions -DHWY_IS_TEST=1 -MD -MT CMakeFiles/math_test.dir/hwy/contrib/math/math_test.cc.o -MF CMakeFiles/math_test.dir/hwy/contrib/math/math_test.cc.o.d -o CMakeFiles/math_test.dir/hwy/contrib/math/math_test.cc.o -c /home/slyfox/dev/git/highway/hwy/contrib/math/math_test.cc In file included from /nix/store/9j5pznccwi0vzmj91w8yr2kiwdm37c5p-gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/immintrin.h:71, from /home/slyfox/dev/git/highway/hwy/ops/x86_256-inl.h:36, from /home/slyfox/dev/git/highway/hwy/highway.h:407, from /home/slyfox/dev/git/highway/hwy/contrib/math/math_test.cc:25, from /home/slyfox/dev/git/highway/hwy/foreach_target.h:94, from /home/slyfox/dev/git/highway/hwy/contrib/math/math_test.cc:24: /nix/store/9j5pznccwi0vzmj91w8yr2kiwdm37c5p-gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/avx512vldqintrin.h: In function '__m256 _mm256_mask_xor_ps(__m256, __mmask8, __m256, __m256)': /nix/store/9j5pznccwi0vzmj91w8yr2kiwdm37c5p-gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/avx512vldqintrin.h:1154:1: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6 1154 | _mm256_mask_xor_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) | ^~~~~~~~~~~~~~~~~~ /home/slyfox/dev/git/highway/hwy/contrib/math/math_test.cc:439:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi] 439 | } // namespace hwy | ^ In file included from /nix/store/9j5pznccwi0vzmj91w8yr2kiwdm37c5p-gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/immintrin.h:43: /nix/store/9j5pznccwi0vzmj91w8yr2kiwdm37c5p-gcc-14.0.0/lib/gcc/x86_64-unknown-linux-gnu/14.0.0/include/avxintrin.h: In function '__m256d _mm256_cvtepi64_pd(__m256i)': /nix/store/9j5pznccwi0vzmj91w8yr2kiwdm37c5p-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/store/9j5pznccwi0vzmj91w8yr2kiwdm37c5p-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); | ~~~~~~~~~~~~~~ I have a suspiction it's related to AVX10 changes, like r14-3268-g0b20e0f17b47a8 which remove `#pragma GCC target("avx512vl,avx512dq")`. Probably not that one specifically though. $ gcc -v Using built-in specs. COLLECT_GCC=/<<NIX>>/gcc-14.0.0/bin/gcc COLLECT_LTO_WRAPPER=/<<NIX>>/gcc-14.0.0/libexec/gcc/x86_64-unknown-linux-gnu/14.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../source/configure --prefix=/<<NIX>>/gcc-14.0.0 --with-gmp-include=/<<NIX>>/gmp-6.3.0-dev/include --with-gmp-lib=/<<NIX>>/gmp-6.3.0/lib --with-mpfr-include=/<<NIX>>/mpfr-4.2.0-12-dev/include --with-mpfr-lib=/<<NIX>>/mpfr-4.2.0-12/lib --with-mpc=/<<NIX>>/libmpc-1.3.1 --with-native-system-header-dir=/<<NIX>>/glibc-2.38-dev/include --with-build-sysroot=/ --program-prefix= --enable-lto --disable-libstdcxx-pch --without-included-gettext --with-system-zlib --enable-checking=release --enable-static --enable-languages=c,c++ --disable-multilib --enable-plugin --disable-libcc1 --with-isl=/<<NIX>>/isl-0.20 --disable-bootstrap --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu Thread model: posix Supported LTO compression algorithms: zlib gcc version 14.0.0 99999999 (experimental) (GCC)