Hi! On 2022-11-14T21:46:15-0700, Sandra Loosemore via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > [...] I've added infrastructure to support testing on the offload > compiler, added new test cases, and reworked the existing test cases to > scan for interesting things written to the dump file instead of > examining the .s output.
Thanks! (..., belatedly. I think it was me who suggested that.) Just one minor fix-up: > --- /dev/null > +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-1.c > @@ -0,0 +1,43 @@ > +/* { dg-do link { target { offload_target_amdgcn } } } */ This means, the test case is active if GCN offloading compilation is enabled. But, consider the case that nvptx offloading compilation also is enabled: > +/* { dg-additional-options "-O2 > -foffload-options=-fdump-ipa-simdclone-details" } */ This will produced dump files for both, GCN and nvptx, separately. However, this isn't applicable for nvptx, thus no dump file produced for that. > +[...] > +/* { dg-final { scan-offload-ipa-dump "Generated local clone > _ZGV.*N.*_addit" "simdclone" } } */ > +/* { dg-final { scan-offload-ipa-dump "Generated local clone > _ZGV.*M.*_addit" "simdclone" } } */ ..., and this will try to scan dump files for both GCN and nvptx. The latter don't exist, resulting in UNRESOLVEDs for nvptx. I've pushed to master branch commit 4c909c6ee381a43081d68abc1ff8a35ce20d24d9 "In 'libgomp.c/target-simd-clone-{1,2,3}.c', restrict 'scan-offload-ipa-dump's to 'only_for_offload_target amdgcn-amdhsa'", see attached. (This obviously depends on <https://inbox.sourceware.org/87y1ens4hq....@euler.schwinge.homeip.net> "testsuite: Add 'only_for_offload_target' wrapper for 'scan-offload-tree-dump' etc.", which I've also just pushed to master branch in commit 27c79b91f6008a21006d4e7053a98e63f2990bb2.) Grüße Thomas > --- /dev/null > +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-2.c > @@ -0,0 +1,39 @@ > +/* { dg-do link { target { offload_target_amdgcn } } } */ > +/* { dg-additional-options "-foffload-options=-fdump-ipa-simdclone-details > -foffload-options=-fno-openmp-target-simd-clone" } */ > +[...] > +/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" } > } */ > --- /dev/null > +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-3.c > @@ -0,0 +1,40 @@ > +/* { dg-do link { target { offload_target_amdgcn } } } */ > +/* { dg-additional-options "-O2 > -foffload-options=-fdump-ipa-simdclone-details" } */ > +[...] > +/* { dg-final { scan-offload-ipa-dump "device doesn't match" "simdclone" { > target x86_64-*-* } } } */ > +/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" { > target x86_64-*-* } } } */ ----------------- 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 4c909c6ee381a43081d68abc1ff8a35ce20d24d9 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Tue, 21 Nov 2023 20:20:21 +0100 Subject: [PATCH] In 'libgomp.c/target-simd-clone-{1,2,3}.c', restrict 'scan-offload-ipa-dump's to 'only_for_offload_target amdgcn-amdhsa' This gets rid of UNRESOLVEDs if nvptx offloading compilation is enabled in addition to GCN: PASS: libgomp.c/target-simd-clone-1.c (test for excess errors) PASS: libgomp.c/target-simd-clone-1.c scan-amdgcn-amdhsa-offload-ipa-dump simdclone "Generated local clone _ZGV.*N.*_addit" -UNRESOLVED: libgomp.c/target-simd-clone-1.c scan-nvptx-none-offload-ipa-dump simdclone "Generated local clone _ZGV.*N.*_addit" PASS: libgomp.c/target-simd-clone-1.c scan-amdgcn-amdhsa-offload-ipa-dump simdclone "Generated local clone _ZGV.*M.*_addit" -UNRESOLVED: libgomp.c/target-simd-clone-1.c scan-nvptx-none-offload-ipa-dump simdclone "Generated local clone _ZGV.*M.*_addit" PASS: libgomp.c/target-simd-clone-2.c (test for excess errors) PASS: libgomp.c/target-simd-clone-2.c scan-amdgcn-amdhsa-offload-ipa-dump-not simdclone "Generated .* clone" -UNRESOLVED: libgomp.c/target-simd-clone-2.c scan-nvptx-none-offload-ipa-dump-not simdclone "Generated .* clone" PASS: libgomp.c/target-simd-clone-3.c (test for excess errors) PASS: libgomp.c/target-simd-clone-3.c scan-amdgcn-amdhsa-offload-ipa-dump simdclone "device doesn't match" -UNRESOLVED: libgomp.c/target-simd-clone-3.c scan-nvptx-none-offload-ipa-dump simdclone "device doesn't match" PASS: libgomp.c/target-simd-clone-3.c scan-amdgcn-amdhsa-offload-ipa-dump-not simdclone "Generated .* clone" -UNRESOLVED: libgomp.c/target-simd-clone-3.c scan-nvptx-none-offload-ipa-dump-not simdclone "Generated .* clone" Minor fix-up for commit 309e2d95e3b930c6f15c8a5346b913158404c76d 'OpenMP: Generate SIMD clones for functions with "declare target"'. libgomp/ * testsuite/libgomp.c/target-simd-clone-1.c: Restrict 'scan-offload-ipa-dump's to 'only_for_offload_target amdgcn-amdhsa'. * testsuite/libgomp.c/target-simd-clone-2.c: Likewise. * testsuite/libgomp.c/target-simd-clone-3.c: Likewise. --- libgomp/testsuite/libgomp.c/target-simd-clone-1.c | 4 ++-- libgomp/testsuite/libgomp.c/target-simd-clone-2.c | 2 +- libgomp/testsuite/libgomp.c/target-simd-clone-3.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libgomp/testsuite/libgomp.c/target-simd-clone-1.c b/libgomp/testsuite/libgomp.c/target-simd-clone-1.c index a9defc4cdd6..05e1568128a 100644 --- a/libgomp/testsuite/libgomp.c/target-simd-clone-1.c +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-1.c @@ -39,5 +39,5 @@ int main (void) /* Although addit has external linkage, we expect clones to be generated as for a function with internal linkage. */ -/* { dg-final { scan-offload-ipa-dump "Generated local clone _ZGV.*N.*_addit" "simdclone" } } */ -/* { dg-final { scan-offload-ipa-dump "Generated local clone _ZGV.*M.*_addit" "simdclone" } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump "Generated local clone _ZGV.*N.*_addit" "simdclone" } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump "Generated local clone _ZGV.*M.*_addit" "simdclone" } } */ diff --git a/libgomp/testsuite/libgomp.c/target-simd-clone-2.c b/libgomp/testsuite/libgomp.c/target-simd-clone-2.c index 05a38ae2bc5..58f9e29332e 100644 --- a/libgomp/testsuite/libgomp.c/target-simd-clone-2.c +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-2.c @@ -36,4 +36,4 @@ int main (void) return 0; } -/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump-not "Generated .* clone" "simdclone" } } */ diff --git a/libgomp/testsuite/libgomp.c/target-simd-clone-3.c b/libgomp/testsuite/libgomp.c/target-simd-clone-3.c index bde091e24ba..796a2a23bc3 100644 --- a/libgomp/testsuite/libgomp.c/target-simd-clone-3.c +++ b/libgomp/testsuite/libgomp.c/target-simd-clone-3.c @@ -36,5 +36,5 @@ int main (void) return 0; } -/* { dg-final { scan-offload-ipa-dump "device doesn't match" "simdclone" { target x86_64-*-* } } } */ -/* { dg-final { scan-offload-ipa-dump-not "Generated .* clone" "simdclone" { target x86_64-*-* } } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump "device doesn't match" "simdclone" { target x86_64-*-* } } } */ +/* { dg-final { only_for_offload_target amdgcn-amdhsa scan-offload-ipa-dump-not "Generated .* clone" "simdclone" { target x86_64-*-* } } } */ -- 2.34.1