On Tue, 18 Aug 2026, Jakub Jelinek wrote:

> 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?

OK.

Richard.

> 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
> 
> 

-- 
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Jochen Jaser, Andrew McDonald, Abhinav Puri; (HRB 36809, AG Nuernberg)

Reply via email to