http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60607
Bug ID: 60607 Summary: Missing lto command line option handling causes build failures Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Consider (-march=native is amdfam10): markus@x4 tmp % cat foo.ii markus@x4 tmp % cat bar.ii typedef int __m128i __attribute__ ((__vector_size__ (16))); __m128i a, b, c; void dequant_scaling () { c = __builtin_ia32_pmulld128 (a, b); } markus@x4 tmp % g++ -flto -fPIC -march=native -O2 -c foo.ii markus@x4 tmp % g++ -flto -fPIC -march=native -O2 -msse4.1 -c bar.ii markus@x4 tmp % g++ -flto -march=native -O2 -shared foo.o bar.o bar.ii: In function ‘dequant_scaling’: bar.ii:3:61: error: ‘__builtin_ia32_pmulld128’ needs isa option -m32 -msse4.1 void dequant_scaling () { c = __builtin_ia32_pmulld128 (a, b); } ^ lto-wrapper: /usr/x86_64-pc-linux-gnu/gcc-bin/4.9.0/g++ returned 1 exit status Adding -msse4.1 to the final link step would fix the issue. This causes e.g. media-libs/x265 build failures see: PR60568 comment13.