Hi! On 2025-01-20T08:40:25+0000, Tamar Christina <tamar.christ...@arm.com> wrote: >> From: Thomas Schwinge <tho...@schwinge.name> >> Sent: Monday, January 13, 2025 9:54 AM
>> On 2025-01-10T21:22:03+0000, Tamar Christina via Gcc-cvs <gcc- >> c...@gcc.gnu.org> wrote: >> > https://gcc.gnu.org/g:68326d5d1a593dc0bf098c03aac25916168bc5a9 >> > >> > commit r15-6807-g68326d5d1a593dc0bf098c03aac25916168bc5a9 >> > Author: Alex Coplan <alex.cop...@arm.com> >> > Date: Mon Mar 11 13:09:10 2024 +0000 >> > >> > vect: Force alignment peeling to vectorize more early break loops >> > [PR118211] >> >> In addition to the regression already noted elsewhere: >> >> PASS: gcc.dg/tree-ssa/predcom-8.c (test for excess errors) >> PASS: gcc.dg/tree-ssa/predcom-8.c scan-tree-dump pcom "Executing >> predictive commoning without unrolling" >> [-PASS:-]{+FAIL:+} gcc.dg/tree-ssa/predcom-8.c scan-tree-dump-not pcom >> "Invalid sum" >> >> ..., this commit for for '--target=amdgcn-amdhsa' (tested '-march=gfx908', >> '-march=gfx1100') also regresses: >> >> PASS: gcc.dg/vect/vect-switch-search-line-fast.c (test for excess errors) >> [-XFAIL:-]{+FAIL:+} gcc.dg/vect/vect-switch-search-line-fast.c >> scan-tree-dump-times vect "vectorized 1 loops" [-1-]{+0+} >> >> gcc.dg/vect/vect-switch-search-line-fast.c: pattern found 1 times >> >> > --- a/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c >> > +++ b/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c >> > [...] >> > -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { >> > xfail *-*-* } } } */ >> > +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { >> > target { ilp32 } } } } */ >> > +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { >> > target { ! ilp32 } } } } */ >> >> Presuming that it's correct that GCN continues to be able vectorize this, >> what is the appropriate conditional to use? > > I don't think we really have a condition for it's succeeding on some targets > for now. Thanks for checking. > The original testcase was xfail but it was failing for many different reasons > on all targets. Eh, of course -- it was XFAIL before, sorry. So, it's not the case that "GCN continues to be able vectorize this", but rather that after this commit, "GCN is now able vectorize this". :-) > So I think just doing { target { ilp32 || { amdgcn-* } } } should work for > now. Pushed to trunk branch commit da75309c635c54a6010b146514d456d2a4c6ab33 "vect: Force alignment peeling to vectorize more early break loops [PR118211]: update 'gcc.dg/vect/vect-switch-search-line-fast.c' for GCN", see attached. Grüße Thomas
>From da75309c635c54a6010b146514d456d2a4c6ab33 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tschwi...@baylibre.com> Date: Tue, 21 Jan 2025 14:57:37 +0100 Subject: [PATCH] vect: Force alignment peeling to vectorize more early break loops [PR118211]: update 'gcc.dg/vect/vect-switch-search-line-fast.c' for GCN PR tree-optimization/118211 PR tree-optimization/116126 gcc/testsuite/ * gcc.dg/vect/vect-switch-search-line-fast.c: Update for GCN. --- gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c b/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c index 21c77f49ebd..678512db319 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c +++ b/gcc/testsuite/gcc.dg/vect/vect-switch-search-line-fast.c @@ -16,5 +16,5 @@ const unsigned char *search_line_fast2 (const unsigned char *s, return s; } -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ilp32 } } } } */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! ilp32 } } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ilp32 || { amdgcn*-*-* } } } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! { ilp32 || { amdgcn*-*-* } } } } } } */ -- 2.34.1