https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87522
--- Comment #3 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> --- Author: hjl Date: Fri Oct 5 11:29:44 2018 New Revision: 264864 URL: https://gcc.gnu.org/viewcvs?rev=264864&root=gcc&view=rev Log: i386: Don't pass -msse2avx to assembler for -mavx With gcc -O2 -fPIC -flto -g -c -o a.o a.c gcc -O2 -fPIC -flto -g -mavx -c -o b.o b.c gcc -shared -O2 -fPIC -flto -g -o lib1.so a.o b.o LTO correctly generates AVX for b.o and SSE for a.o. But the GCC driver passes -msse2avx to assembler, which encodes SSE instructions as AVX instructions. We shouldn't pass -msse2avx to assembler for -mavx. PR target/87522 * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to assembler for -mavx. * config/i386/gnu-user64.h (ASM_SPEC): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/gnu-user.h trunk/gcc/config/i386/gnu-user64.h