]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386: Don't pass -msse2avx to assembler for -mavx
authorH.J. Lu <hongjiu.lu@intel.com>
Fri, 12 Oct 2018 12:34:36 +0000 (12:34 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Fri, 12 Oct 2018 12:34:36 +0000 (05:34 -0700)
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.

Backport from mainline
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: r265090

gcc/ChangeLog
gcc/config/i386/gnu-user.h
gcc/config/i386/gnu-user64.h

index dfe7efc61fb2d8e1b40732d5228792358d4c7531..acfb3175e4d21eb2bad78bcad2e0a21ac9c3b4ff 100644 (file)
@@ -1,3 +1,13 @@
+2018-10-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       Backport from mainline
+       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-09-19  John David Anglin  <danglin@gcc.gnu.org>
 
        * config/pa/pa.md (atomic_storeqi): Restore deleted expander.
index fee33a3efdcbb14eb199f999bd0b53bff03eb605..3842f8928d53760a91c986c1d397f5a1ec07b33c 100644 (file)
@@ -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 \
index 7a02a7eb4d798139827bf54ee3b74d33d6230c4f..5aa2876739fbab92fa8bab5cca734220bc064af0 100644 (file)
@@ -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 "} \