The following patch works around quite a number of i386 testcases
FAILing on Solaris/x86, as reported in the PR. To avoid tons of
testsuite noise, the following patch adds -mno-stackrealign to the
affected testcases and will thus benefit other targets that default to
-mstackrealign, too.
Bootstrapped without regressions on i386-pc-solaris2.12 and
x86_64-pc-linux-gnuu (both multilibs in each case).
Ok for mainline and (eventually) the gcc-6 branch?
Thanks.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
2016-09-07 Rainer Orth <[email protected]>
PR target/77483
* gcc.target/i386/mask-unpack.c (dg-options): Add -mno-stackrealign.
* gcc.target/i386/pr65105-1.c: Likewise.
* gcc.target/i386/pr65105-2.c: Likewise.
* gcc.target/i386/pr65105-3.c: Likewise.
* gcc.target/i386/pr65105-5.c: Likewise.
* gcc.target/i386/pr67761.c: Likewise.
* gcc.target/i386/pr70799-1.c: Likewise.
# HG changeset patch
# Parent 3e7f3a609bf8231e3e4c8be3a1a84b62a02a1e1e
Work around -mstackrealign disabled for 32-bit (PR target/77483)
diff --git a/gcc/testsuite/gcc.target/i386/mask-unpack.c b/gcc/testsuite/gcc.target/i386/mask-unpack.c
--- a/gcc/testsuite/gcc.target/i386/mask-unpack.c
+++ b/gcc/testsuite/gcc.target/i386/mask-unpack.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-mavx512bw -mavx512dq -O3 -fopenmp-simd -fdump-tree-vect-details" } */
+/* { dg-options "-mavx512bw -mavx512dq -mno-stackrealign -O3 -fopenmp-simd -fdump-tree-vect-details" } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 10 "vect" } } */
/* { dg-final { scan-assembler-not "maskmov" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr65105-1.c b/gcc/testsuite/gcc.target/i386/pr65105-1.c
--- a/gcc/testsuite/gcc.target/i386/pr65105-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr65105-1.c
@@ -1,6 +1,6 @@
/* PR target/pr65105 */
/* { dg-do run { target { ia32 } } } */
-/* { dg-options "-O2 -msse2 -mtune=slm -save-temps" } */
+/* { dg-options "-O2 -msse2 -mtune=slm -mno-stackrealign -save-temps" } */
/* { dg-require-effective-target sse2 } */
/* { dg-final { scan-assembler "por" } } */
/* { dg-final { scan-assembler "pand" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr65105-2.c b/gcc/testsuite/gcc.target/i386/pr65105-2.c
--- a/gcc/testsuite/gcc.target/i386/pr65105-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr65105-2.c
@@ -1,6 +1,6 @@
/* PR target/pr65105 */
/* { dg-do compile { target { ia32 } } } */
-/* { dg-options "-O2 -msse2" } */
+/* { dg-options "-O2 -msse2 -mno-stackrealign" } */
/* { dg-final { scan-assembler "por" } } */
long long i1, i2, res;
diff --git a/gcc/testsuite/gcc.target/i386/pr65105-3.c b/gcc/testsuite/gcc.target/i386/pr65105-3.c
--- a/gcc/testsuite/gcc.target/i386/pr65105-3.c
+++ b/gcc/testsuite/gcc.target/i386/pr65105-3.c
@@ -1,6 +1,6 @@
/* PR target/pr65105 */
/* { dg-do compile { target { ia32 } } } */
-/* { dg-options "-O2 -march=slm -msse4.2" } */
+/* { dg-options "-O2 -march=slm -msse4.2 -mno-stackrealign" } */
/* { dg-final { scan-assembler "pand" } } */
/* { dg-final { scan-assembler "por" } } */
/* { dg-final { scan-assembler "ptest" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr65105-5.c b/gcc/testsuite/gcc.target/i386/pr65105-5.c
--- a/gcc/testsuite/gcc.target/i386/pr65105-5.c
+++ b/gcc/testsuite/gcc.target/i386/pr65105-5.c
@@ -1,6 +1,6 @@
/* PR target/pr65105 */
/* { dg-do compile { target { ia32 } } } */
-/* { dg-options "-O2 -march=core-avx2" } */
+/* { dg-options "-O2 -march=core-avx2 -mno-stackrealign" } */
/* { dg-final { scan-assembler "pandn" } } */
/* { dg-final { scan-assembler "pxor" } } */
/* { dg-final { scan-assembler "ptest" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr67761.c b/gcc/testsuite/gcc.target/i386/pr67761.c
--- a/gcc/testsuite/gcc.target/i386/pr67761.c
+++ b/gcc/testsuite/gcc.target/i386/pr67761.c
@@ -1,6 +1,6 @@
/* PR target/pr67761 */
/* { dg-do compile { target { ia32 } } } */
-/* { dg-options "-O2 -march=slm -g" } */
+/* { dg-options "-O2 -march=slm -mno-stackrealign -g" } */
/* { dg-final { scan-assembler "paddq" } } */
void
diff --git a/gcc/testsuite/gcc.target/i386/pr70799-1.c b/gcc/testsuite/gcc.target/i386/pr70799-1.c
--- a/gcc/testsuite/gcc.target/i386/pr70799-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr70799-1.c
@@ -1,6 +1,6 @@
/* PR target/pr70799 */
/* { dg-do compile { target { ia32 } } } */
-/* { dg-options "-O2 -march=slm" } */
+/* { dg-options "-O2 -march=slm -mno-stackrealign" } */
/* { dg-final { scan-assembler "pxor" } } */
/* { dg-final { scan-assembler "pcmpeqd" } } */
/* { dg-final { scan-assembler "movdqa\[ \\t\]+.?LC0" } } */