From patchwork Fri Apr 1 09:35:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 52563 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 06A553945C12 for ; Fri, 1 Apr 2022 09:35:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 06A553945C12 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648805756; bh=/ZwhAZ7qKl/uyz9Fk2h9EraO2vf6DaE2H0EnsTlxz+A=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=LOGFb/nDlf3qk6AyuHnLQ4zl9hr208bKNVJbsDaHIucH5U29QzF5DMy/LtBwcPK1e V2MOFqXSSiT8S+70125wdrU/Ftj87nlgaeG2NT91Iww2vioA2B4ksS9MP6V/OUEpiH em1H7XwY+knrM5ZFW77sc7MAsmLlY1S4NwMDLW7A= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id B3CAC3858D28 for ; Fri, 1 Apr 2022 09:35:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B3CAC3858D28 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 696F51FD00 for ; Fri, 1 Apr 2022 09:35:24 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 570871331E for ; Fri, 1 Apr 2022 09:35:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Q6jME1zHRmLYWwAAMHmgww (envelope-from ) for ; Fri, 01 Apr 2022 09:35:24 +0000 Date: Fri, 1 Apr 2022 11:35:22 +0200 To: gcc-patches@gcc.gnu.org Subject: [committed][nvptx, testsuite] Fix gcc.target/nvptx/alias-*.c on sm_80 Message-ID: <20220401093520.GA8805@delia> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tom de Vries via Gcc-patches From: Tom de Vries Reply-To: Tom de Vries Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, When running test-cases gcc.target/nvptx/alias-*.c on target board nvptx-none-run/-misa=sm_80 we run into fails because the test-cases add -mptx=6.3, which doesn't support sm_80. Fix this by only adding -mptx=6.3 if necessary, and simplify the test-cases by using ptx_alias feature abstractions: ... /* { dg-do run { target runtime_ptx_alias } } */ /* { dg-add-options ptx_alias } */ ... Tested on nvptx. Committed to trunk. Thanks, - Tom [nvptx, testsuite] Fix gcc.target/nvptx/alias-*.c on sm_80 gcc/testsuite/ChangeLog: 2022-04-01 Tom de Vries * gcc.target/nvptx/nvptx.exp (check_effective_target_runtime_ptx_isa_version_6_3): Rename and generalize to ... (check_effective_target_runtime_ptx_isa_version_at_least): .. this. (check_effective_target_default_ptx_isa_version_at_least) (check_effective_target_runtime_ptx_alias, add_options_for_ptx_alias): New proc. * gcc.target/nvptx/alias-1.c: Use "target runtime_ptx_alias" and "dg-add-options ptx_alias". * gcc.target/nvptx/alias-2.c: Same. * gcc.target/nvptx/alias-3.c: Same. * gcc.target/nvptx/alias-4.c: Same. --- gcc/testsuite/gcc.target/nvptx/alias-1.c | 5 +-- gcc/testsuite/gcc.target/nvptx/alias-2.c | 5 +-- gcc/testsuite/gcc.target/nvptx/alias-3.c | 5 +-- gcc/testsuite/gcc.target/nvptx/alias-4.c | 5 +-- gcc/testsuite/gcc.target/nvptx/nvptx.exp | 62 +++++++++++++++++++++++++++++--- 5 files changed, 70 insertions(+), 12 deletions(-) diff --git a/gcc/testsuite/gcc.target/nvptx/alias-1.c b/gcc/testsuite/gcc.target/nvptx/alias-1.c index f68716e77dd..d251eee6e42 100644 --- a/gcc/testsuite/gcc.target/nvptx/alias-1.c +++ b/gcc/testsuite/gcc.target/nvptx/alias-1.c @@ -1,6 +1,7 @@ /* { dg-do link } */ -/* { dg-do run { target runtime_ptx_isa_version_6_3 } } */ -/* { dg-options "-save-temps -malias -mptx=6.3" } */ +/* { dg-do run { target runtime_ptx_alias } } */ +/* { dg-options "-save-temps" } */ +/* { dg-add-options ptx_alias } */ int v; diff --git a/gcc/testsuite/gcc.target/nvptx/alias-2.c b/gcc/testsuite/gcc.target/nvptx/alias-2.c index e2dc9b1f5ac..96cb7e2c1ef 100644 --- a/gcc/testsuite/gcc.target/nvptx/alias-2.c +++ b/gcc/testsuite/gcc.target/nvptx/alias-2.c @@ -1,6 +1,7 @@ /* { dg-do link } */ -/* { dg-do run { target runtime_ptx_isa_version_6_3 } } */ -/* { dg-options "-save-temps -malias -mptx=6.3 -O2" } */ +/* { dg-do run { target runtime_ptx_alias } } */ +/* { dg-options "-save-temps -O2" } */ +/* { dg-add-options ptx_alias } */ #include "alias-1.c" diff --git a/gcc/testsuite/gcc.target/nvptx/alias-3.c b/gcc/testsuite/gcc.target/nvptx/alias-3.c index 60486e50826..39649e30b91 100644 --- a/gcc/testsuite/gcc.target/nvptx/alias-3.c +++ b/gcc/testsuite/gcc.target/nvptx/alias-3.c @@ -1,6 +1,7 @@ /* { dg-do link } */ -/* { dg-do run { target runtime_ptx_isa_version_6_3 } } */ -/* { dg-options "-save-temps -malias -mptx=6.3" } */ +/* { dg-do run { target runtime_ptx_alias } } */ +/* { dg-options "-save-temps" } */ +/* { dg-add-options ptx_alias } */ /* Copy of alias-1.c, with static __f and f. */ diff --git a/gcc/testsuite/gcc.target/nvptx/alias-4.c b/gcc/testsuite/gcc.target/nvptx/alias-4.c index 956150a6b3f..28163c0faa0 100644 --- a/gcc/testsuite/gcc.target/nvptx/alias-4.c +++ b/gcc/testsuite/gcc.target/nvptx/alias-4.c @@ -1,6 +1,7 @@ /* { dg-do link } */ -/* { dg-do run { target runtime_ptx_isa_version_6_3 } } */ -/* { dg-options "-save-temps -malias -mptx=6.3 -O2" } */ +/* { dg-do run { target runtime_ptx_alias } } */ +/* { dg-options "-save-temps -O2" } */ +/* { dg-add-options ptx_alias } */ #include "alias-3.c" diff --git a/gcc/testsuite/gcc.target/nvptx/nvptx.exp b/gcc/testsuite/gcc.target/nvptx/nvptx.exp index e69b6d35fed..e9622ae7aaa 100644 --- a/gcc/testsuite/gcc.target/nvptx/nvptx.exp +++ b/gcc/testsuite/gcc.target/nvptx/nvptx.exp @@ -25,11 +25,65 @@ if ![istarget nvptx*-*-*] then { # Load support procs. load_lib gcc-dg.exp -# Return 1 if code with -mptx=6.3 can be run. -proc check_effective_target_runtime_ptx_isa_version_6_3 { args } { - return [check_runtime run_ptx_isa_6_3 { +# Return 1 if code by default compiles for at least PTX ISA version +# major.minor. +proc check_effective_target_default_ptx_isa_version_at_least { major minor } { + set name default_ptx_isa_version_at_least_${major}_${minor} + + set supported_p \ + [concat \ + "((__PTX_ISA_VERSION_MAJOR__ == $major" \ + " && __PTX_ISA_VERSION_MINOR__ >= $minor)" \ + " || (__PTX_ISA_VERSION_MAJOR__ > $major))"] + + set src \ + [list \ + "#if $supported_p" \ + "#else" \ + "#error unsupported" \ + "#endif"] + set src [join $src "\n"] + + set res [check_no_compiler_messages $name assembly $src ""] + + return $res +} + +# Return 1 if code with PTX ISA version major.minor or higher can be run. +proc check_effective_target_runtime_ptx_isa_version_at_least { major minor } { + set name runtime_ptx_isa_version_${major}_${minor} + + set default \ + [check_effective_target_default_ptx_isa_version_at_least \ + ${major} ${minor}] + + if { $default } { + set flag "" + } else { + set flag "-mptx=$major.$minor" + } + + set res [check_runtime $name { int main (void) { return 0; } - } "-mptx=6.3"] + } $flag] + + return $res +} + +# Return 1 if runtime environment support the PTX ISA directive .alias. +proc check_effective_target_runtime_ptx_alias { } { + return [check_effective_target_runtime_ptx_isa_version_at_least 6 3] +} + +# Add options to enable using PTX ISA directive .alias. +proc add_options_for_ptx_alias { flags } { + append flags " -malias" + + if { ![check_effective_target_default_ptx_isa_version_at_least 6 3] } { + append flags " -mptx=6.3" + } + + return $flags } # If a testcase doesn't have special options, use these.