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. From-SVN: r264864
This commit is contained in:
parent
49022a8b83
commit
ae36de9153
3 changed files with 9 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
2018-10-05 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
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.
|
||||
|
||||
2018-10-05 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
PR target/87509
|
||||
|
|
|
@ -67,7 +67,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC \
|
||||
"--32 %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
|
||||
"--32 %{msse2avx:%{!mavx:-msse2avx}}"
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
|
|
|
@ -50,7 +50,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|||
#define ASM_SPEC "%{" SPEC_32 ":--32} \
|
||||
%{" SPEC_64 ":--64} \
|
||||
%{" SPEC_X32 ":--x32} \
|
||||
%{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
|
||||
%{msse2avx:%{!mavx:-msse2avx}}"
|
||||
|
||||
#define GNU_USER_TARGET_LINK_SPEC \
|
||||
"%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
|
||||
|
|
Loading…
Add table
Reference in a new issue