Hi!

I'm seeing various recent FAILs on ia32.
+FAIL: gcc.dg/tree-ssa/divmul-mod-1.c (test for excess errors)
+FAIL: gcc.dg/tree-ssa/round-up-ior-1.c (test for excess errors)
+FAIL: gcc.dg/tree-ssa/vec-mask-zero-1.c (test for excess errors)
+FAIL: gcc.dg/tree-ssa/vec-mask-zero-1.c scan-tree-dump-times optimized " != " 2
+FAIL: gcc.dg/tree-ssa/vec-mask-zero-1.c scan-tree-dump-times optimized " & " 2
+FAIL: gcc.dg/tree-ssa/vec-mask-zero-1.c scan-tree-dump-times optimized " == " 2
+FAIL: gcc.dg/tree-ssa/vec-mask-zero-1.c scan-tree-dump-times optimized " \\\\| 
" 2
+FAIL: gcc.dg/tree-ssa/vector-alignup-1.c (test for excess errors)
+FAIL: gcc.dg/tree-ssa/vector-alignup-1.c scan-tree-dump-times optimized " & " 2
+FAIL: gcc.dg/tree-ssa/vector-alignup-1.c scan-tree-dump-times optimized " 
\\\\+ " 2
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++11  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++14  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++17  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++20  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++23  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++26  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++29  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-1.C  -std=gnu++98  scan-tree-dump-not 
optimized "vector\\\\(2\\\\) long"
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++11  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++11 (test for excess 
errors)
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++14  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++14 (test for excess 
errors)
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++17  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++17 (test for excess 
errors)
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++20  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++20 (test for excess 
errors)
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++23  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++23 (test for excess 
errors)
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++26  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++26 (test for excess 
errors)
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++29  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++29 (test for excess 
errors)
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++98  
scan-tree-dump-times optimized "MIN_EXPR" 1
+FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++98 (test for excess 
errors)
The following patch fixes the gcc.dg ones and the excess errors in
vec-narrow-minmax-2.C.
vec-narrow-1.C still fails on ia32, dunno why (added at least -mmmx but it
didn't help, unlike x86_64 ia32 doesn't emulate MMX sized vectors in SSE2),
and the MIN_EXPR scans fail before/after on both x86_64 and ia32.

Tested on x86_64-linux with
GXX_TESTSUITE_STDS=98,11,14,17,20,23,26,29 make check-gcc check-g++ 
RUNTESTFLAGS="--target_board=unix\{-m64,-m32,-m32/-mno-sse/-mno-mmx\} 
tree-ssa.exp='divmul-mod-1.c round-up-ior-1.c vec-mask-zero-1.c 
vector-alignup-1.c' dg.exp='vec-narrow-minmax-2.C vec-narrow-1.C'"
Ok for trunk?

2026-08-18  Jakub Jelinek  <[email protected]>

        * gcc.dg/tree-ssa/divmul-mod-1.c: Add -Wno-psabi to dg-options.
        * gcc.dg/tree-ssa/round-up-ior-1.c: Likewise.
        * gcc.dg/tree-ssa/vec-mask-zero-1.c: Require vect_int effective
        target.  Add -Wno-psabi to dg-options and add -msse2 as
        dg-additional-options on ia32.
        * gcc.dg/tree-ssa/vector-alignup-1.c: Add -msse2 as
        dg-additional-options on ia32.
        * g++.dg/tree-ssa/vec-narrow-minmax-2.C: Add -Wno-psabi to dg-options.
        * g++.dg/tree-ssa/vec-narrow-1.C: Likewise. Add -mmmx as
        dg-additional-options on ia32.

--- gcc/testsuite/gcc.dg/tree-ssa/divmul-mod-1.c.jj     2026-08-17 
10:00:21.910853874 +0200
+++ gcc/testsuite/gcc.dg/tree-ssa/divmul-mod-1.c        2026-08-18 
09:04:09.860550950 +0200
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fdump-tree-optimized -Wno-psabi" } */
 
 typedef int v4si __attribute__ ((vector_size (16)));
 typedef unsigned int v4ui __attribute__ ((vector_size (16)));
--- gcc/testsuite/gcc.dg/tree-ssa/round-up-ior-1.c.jj   2026-08-17 
10:00:21.911853861 +0200
+++ gcc/testsuite/gcc.dg/tree-ssa/round-up-ior-1.c      2026-08-18 
09:04:27.078324715 +0200
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fdump-tree-optimized -Wno-psabi" } */
 
 typedef unsigned int v4ui __attribute__ ((vector_size (16)));
 
--- gcc/testsuite/gcc.dg/tree-ssa/vec-mask-zero-1.c.jj  2026-08-17 
10:00:21.911853861 +0200
+++ gcc/testsuite/gcc.dg/tree-ssa/vec-mask-zero-1.c     2026-08-18 
09:13:52.013896106 +0200
@@ -1,5 +1,6 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-do compile { target vect_int } } */
+/* { dg-options "-O2 -fdump-tree-optimized -Wno-psabi" } */
+/* { dg-additional-options "-msse2" { target ia32 } } */
 /* Combine pairs of vector comparisons against zero or all-ones.  Use
    different signedness for the operands to exercise the view conversion.  */
 typedef int v4si __attribute__((vector_size (16)));
--- gcc/testsuite/gcc.dg/tree-ssa/vector-alignup-1.c.jj 2026-08-06 
17:46:47.582463890 +0200
+++ gcc/testsuite/gcc.dg/tree-ssa/vector-alignup-1.c    2026-08-18 
09:09:39.285220615 +0200
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_int } */
 /* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-additional-options "-msse2" { target ia32 } } */
 
 /* Rounding up by adding the padding, spelled with vectors.  */
 
--- gcc/testsuite/g++.dg/tree-ssa/vec-narrow-minmax-2.C.jj      2026-08-17 
10:00:21.908853899 +0200
+++ gcc/testsuite/g++.dg/tree-ssa/vec-narrow-minmax-2.C 2026-08-18 
09:14:45.021198826 +0200
@@ -1,5 +1,5 @@
 // { dg-do compile }
-// { dg-options "-O2 -fdump-tree-optimized" }
+// { dg-options "-O2 -fdump-tree-optimized -Wno-psabi" }
 
 typedef int v2si __attribute__((vector_size (8)));
 typedef long long v2di __attribute__((vector_size (16)));
--- gcc/testsuite/g++.dg/tree-ssa/vec-narrow-1.C.jj     2026-08-17 
10:00:21.908853899 +0200
+++ gcc/testsuite/g++.dg/tree-ssa/vec-narrow-1.C        2026-08-18 
09:11:57.800398527 +0200
@@ -1,6 +1,7 @@
 // { dg-do compile }
-// { dg-options "-O2 -fdump-tree-optimized" }
+// { dg-options "-O2 -fdump-tree-optimized -Wno-psabi" }
 // { dg-additional-options "-mavx512vl -mavx512dq" { target { i?86-*-* 
x86_64-*-* } } }
+// { dg-additional-options "-mmmx" { target ia32 } }
 // Extension is monotone, so it commutes with the comparison and the outer
 // truncation is exact.  The argument is lanewise, so a widened vector
 // MIN/MAX feeding a truncating conversion narrows.

        Jakub

Reply via email to