Re: [PATCH] vec-narrow-1.C/vec-narrow-minmax-2.C: Compile with -msse4 and require int128

Richard Biener <[email protected]>
Newsgroups gmane.comp.gcc.patches
Message-ID <[email protected]>
On Tue, 18 Aug 2026, H.J. Lu wrote:

> On Tue, Aug 18, 2026 at 4:18 PM Richard Biener <[email protected]> wrote:
> >
> > 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?
> 
> I still got
> 
> 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++98  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-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++98
> scan-tree-dump-times optimized "MIN_EXPR" 1
> FAIL: g++.dg/tree-ssa/vec-narrow-minmax-2.C  -std=gnu++29
> scan-tree-dump-times optimized "MIN_EXPR" 1
> 
> for -m32.
> 
> Here is the patch to fix them.

OK.

I suppose they will still fail on targets without vector support
though.

Richard.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.