Hi! On 2023-10-31T13:10:24+0000, Richard Biener <rguent...@suse.de> wrote: > On Tue, 31 Oct 2023, Thomas Schwinge wrote: >> On 2023-10-19T11:47:14+0000, Richard Biener <rguent...@suse.de> wrote: >> > The following implements SLP vectorization support for gathers >> > without relying on IFNs being pattern detected (and supported by >> > the target). That includes support for emulated gathers but also >> > the legacy x86 builtin path. >> > >> > Bootstrapped and tested on x86_64-unknown-linux-gnu, will push. >> >> For GCN (tested '-march=gfx90a'), I see: >> >> PASS: gcc.dg/vect/vect-gather-2.c (test for excess errors) >> +FAIL: gcc.dg/vect/vect-gather-2.c scan-tree-dump vect "different gather >> base" >> +FAIL: gcc.dg/vect/vect-gather-2.c scan-tree-dump vect "different gather >> scale" >> +PASS: gcc.dg/vect/vect-gather-2.c scan-tree-dump-not vect "Loop >> contains only SLP stmts" > > Ah, for gather IFNs pattern matched it will instead have > > Build SLP failed: different calls in patt_55 = .GATHER_LOAD ((sizetype) > x2_29(D), _15, 4, 0); > > but then I have put in > > /* { dg-final { scan-tree-dump "different gather base" vect { target { ! > vect_gather_load_ifn } } } } */ > /* { dg-final { scan-tree-dump "different gather scale" vect { target { ! > vect_gather_load_ifn } } } } */ > > and expected gcn to have vect_gather_load_ifn ... but that is > > proc check_effective_target_vect_gather_load_ifn { } { > return [expr { [check_effective_target_aarch64_sve] > || [check_effective_target_riscv_v] }] > } > > probably add > > || [istarget amdgcn*-*-*] > > there? Can you do that (after checking it doesn't break other > tests)?
Oh indeed, thanks! Pushed to master branch commit 36a26298ec7dfca615d4ba411a3508d1287d6ce5 "Make GCN target effective-target 'vect_gather_load_ifn'", see attached. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
>From 36a26298ec7dfca615d4ba411a3508d1287d6ce5 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Tue, 31 Oct 2023 14:31:37 +0100 Subject: [PATCH] Make GCN target effective-target 'vect_gather_load_ifn' This fixes: PASS: gcc.dg/vect/vect-gather-2.c (test for excess errors) -FAIL: gcc.dg/vect/vect-gather-2.c scan-tree-dump vect "different gather base" -FAIL: gcc.dg/vect/vect-gather-2.c scan-tree-dump vect "different gather scale" PASS: gcc.dg/vect/vect-gather-2.c scan-tree-dump-not vect "Loop contains only SLP stmts" ..., and enables other test cases. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_vect_gather_load_ifn): True for GCN target. --- gcc/testsuite/lib/target-supports.exp | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index a5f393e1c10..bc93f6e158b 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -8773,6 +8773,7 @@ proc check_effective_target_vect_masked_store { } { proc check_effective_target_vect_gather_load_ifn { } { return [expr { [check_effective_target_aarch64_sve] + || [istarget amdgcn*-*-*] || [check_effective_target_riscv_v] }] } -- 2.34.1