[testsuite,i386] Fix gcc.target/i386/minmax-4.c etc. on 32-bit Solaris/x86

Message ID yddzhk1p6t5.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series
  • [testsuite,i386] Fix gcc.target/i386/minmax-4.c etc. on 32-bit Solaris/x86
Related show

Commit Message

Rainer Orth Aug. 22, 2019, 3:18 p.m.
The new gcc.target/i386/minmax-4.c etc. testcases currently FAIL on
32-bit Solaris/x86:

FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pmaxsd 1
FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pmaxud 1
FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pminsd 1
FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pminud 1
FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpmaxsd 1
FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpmaxud 1
FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpminsd 1
FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpminud 1
FAIL: gcc.target/i386/minmax-6.c scan-assembler pmaxsd
FAIL: gcc.target/i386/minmax-7.c scan-assembler pminsd
FAIL: gcc.target/i386/pr91154.c scan-assembler-not cmov
FAIL: gcc.target/i386/pr91154.c scan-assembler-times paddd 2
FAIL: gcc.target/i386/pr91154.c scan-assembler-times pmaxsd 2

I'd mentioned this in PRs target/91154 and target/91498 where Uros
pointed out that 32-bit Solaris/x86 only guarantees 4-byte stack
alignment, thus STV is disabled.

In line with several other STV tests, adding -mno-stackrealign to the
options fixes the failures.

Tested with the appropriate runtest invocation on i386-pc-solaris2.11
and x86_64-pc-linux-gnu.

Ok for mainline?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2019-08-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gcc.target/i386/minmax-4.c: Add -mno-stackrealign to dg-options.
	* gcc.target/i386/minmax-5.c: Likewise.
	* gcc.target/i386/minmax-6.c: Likewise.
	* gcc.target/i386/minmax-7.c: Likewise.
	* gcc.target/i386/pr91154.c: Likewise.

Comments

Jeff Law Aug. 22, 2019, 4:25 p.m. | #1
On 8/22/19 9:18 AM, Rainer Orth wrote:
> The new gcc.target/i386/minmax-4.c etc. testcases currently FAIL on

> 32-bit Solaris/x86:

> 

> FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pmaxsd 1

> FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pmaxud 1

> FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pminsd 1

> FAIL: gcc.target/i386/minmax-4.c scan-assembler-times pminud 1

> FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpmaxsd 1

> FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpmaxud 1

> FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpminsd 1

> FAIL: gcc.target/i386/minmax-5.c scan-assembler-times vpminud 1

> FAIL: gcc.target/i386/minmax-6.c scan-assembler pmaxsd

> FAIL: gcc.target/i386/minmax-7.c scan-assembler pminsd

> FAIL: gcc.target/i386/pr91154.c scan-assembler-not cmov

> FAIL: gcc.target/i386/pr91154.c scan-assembler-times paddd 2

> FAIL: gcc.target/i386/pr91154.c scan-assembler-times pmaxsd 2

> 

> I'd mentioned this in PRs target/91154 and target/91498 where Uros

> pointed out that 32-bit Solaris/x86 only guarantees 4-byte stack

> alignment, thus STV is disabled.

> 

> In line with several other STV tests, adding -mno-stackrealign to the

> options fixes the failures.

> 

> Tested with the appropriate runtest invocation on i386-pc-solaris2.11

> and x86_64-pc-linux-gnu.

> 

> Ok for mainline?

OK.
Jeff

Patch

# HG changeset patch
# Parent  82b696ad52afcccff42b7b86c591cff9732e667e
Fix gcc.target/i386/minmax-4.c etc. on 32-bit Solaris/x86

diff --git a/gcc/testsuite/gcc.target/i386/minmax-4.c b/gcc/testsuite/gcc.target/i386/minmax-4.c
--- a/gcc/testsuite/gcc.target/i386/minmax-4.c
+++ b/gcc/testsuite/gcc.target/i386/minmax-4.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -mstv -msse4.1" } */
+/* { dg-options "-O2 -mstv -mno-stackrealign -msse4.1" } */
 
 #include "minmax-3.c"
 
diff --git a/gcc/testsuite/gcc.target/i386/minmax-5.c b/gcc/testsuite/gcc.target/i386/minmax-5.c
--- a/gcc/testsuite/gcc.target/i386/minmax-5.c
+++ b/gcc/testsuite/gcc.target/i386/minmax-5.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -mstv -mavx512vl" } */
+/* { dg-options "-O2 -mstv -mno-stackrealign -mavx512vl" } */
 
 #include "minmax-3.c"
 
diff --git a/gcc/testsuite/gcc.target/i386/minmax-6.c b/gcc/testsuite/gcc.target/i386/minmax-6.c
--- a/gcc/testsuite/gcc.target/i386/minmax-6.c
+++ b/gcc/testsuite/gcc.target/i386/minmax-6.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=haswell" } */
+/* { dg-options "-O2 -march=haswell -mno-stackrealign" } */
 
 unsigned short
 UMVLine16Y_11 (short unsigned int * Pic, int y, int width)
diff --git a/gcc/testsuite/gcc.target/i386/minmax-7.c b/gcc/testsuite/gcc.target/i386/minmax-7.c
--- a/gcc/testsuite/gcc.target/i386/minmax-7.c
+++ b/gcc/testsuite/gcc.target/i386/minmax-7.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=haswell" } */
+/* { dg-options "-O2 -march=haswell -mno-stackrealign" } */
 
 extern int numBins;
 extern int binOffst;
diff --git a/gcc/testsuite/gcc.target/i386/pr91154.c b/gcc/testsuite/gcc.target/i386/pr91154.c
--- a/gcc/testsuite/gcc.target/i386/pr91154.c
+++ b/gcc/testsuite/gcc.target/i386/pr91154.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -msse4.1 -mstv" } */
+/* { dg-options "-O2 -msse4.1 -mstv -mno-stackrealign" } */
 
 void foo (int *dc, int *mc, int *tpdd, int *tpmd, int M)
 {