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
* 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.
# 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)
{