{"id":2224510,"url":"http://patchwork.ozlabs.org/api/patches/2224510/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/20260417135045.339632-1-tschwinge@baylibre.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260417135045.339632-1-tschwinge@baylibre.com>","list_archive_url":null,"date":"2026-04-17T13:50:45","name":"[PUSHED] nvptx: Support '-mptx=4.0'","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"671ba3fec084e195070043c55e2476ccaf0eb286","submitter":{"id":87905,"url":"http://patchwork.ozlabs.org/api/people/87905/?format=json","name":"Thomas Schwinge","email":"tschwinge@baylibre.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/20260417135045.339632-1-tschwinge@baylibre.com/mbox/","series":[{"id":500344,"url":"http://patchwork.ozlabs.org/api/series/500344/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=500344","date":"2026-04-17T13:50:45","name":"[PUSHED] nvptx: Support '-mptx=4.0'","version":1,"mbox":"http://patchwork.ozlabs.org/series/500344/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2224510/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2224510/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=baylibre-com.20251104.gappssmtp.com\n header.i=@baylibre-com.20251104.gappssmtp.com header.a=rsa-sha256\n header.s=20251104 header.b=wotL2dOR;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=baylibre-com.20251104.gappssmtp.com\n header.i=@baylibre-com.20251104.gappssmtp.com header.a=rsa-sha256\n header.s=20251104 header.b=wotL2dOR","sourceware.org;\n dmarc=none (p=none dis=none) header.from=baylibre.com","sourceware.org; spf=pass smtp.mailfrom=baylibre.com","server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.128.52"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxxBB0G59z1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 23:51:30 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 3AA754AA397C\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 13:51:28 +0000 (GMT)","from mail-wm1-f52.google.com (mail-wm1-f52.google.com\n [209.85.128.52])\n by sourceware.org (Postfix) with ESMTPS id 61CE54CCCA0B\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 13:50:56 +0000 (GMT)","by mail-wm1-f52.google.com with SMTP id\n 5b1f17b1804b1-488ad135063so7177635e9.0\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 06:50:56 -0700 (PDT)","from dem-tschwing-1.schwinge.ddns.net\n (p200300c8b74c74007aec2d3495560d74.dip0.t-ipconnect.de.\n [2003:c8:b74c:7400:7aec:2d34:9556:d74])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488fc16f93dsm65013475e9.3.2026.04.17.06.50.54\n for <gcc-patches@gcc.gnu.org>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 17 Apr 2026 06:50:54 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 3AA754AA397C","OpenDKIM Filter v2.11.0 sourceware.org 61CE54CCCA0B"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 61CE54CCCA0B","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 61CE54CCCA0B","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776433856; cv=none;\n b=HQ8GJ8HxhWF90C0QSDiGHNp5VDXdEqJaDMpRBspg65Uqbu4c3WlsYc7/9/9dUlVhLE9tNl464BgTOqZNmKDArT5dKBJsApKv9wZAR9/mH7zCDzMc9nwLsqyTMT5aL7wAwlMfqShsMws59EqdpFPT+qDOtLG7G0GHW2G0lxPhY5Q=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776433856; c=relaxed/simple;\n bh=BzdIoraJxc+6Ai8ub8LB7i756pTqr7ueAPBxtcrfJQA=;\n h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version;\n b=ip8FrtMLacWuhXBspmGJUFx4BMSAtE7v3Uw7Z8dsII3fO+mXylgdGX56Ztf8g8tmaxwtjxS3BlfifJqffOcRUciwPODKdB8mTpPoOGYK3YegOYarY5nIEFAIMFsVtv9i6roi1IP+K2FsOuNgghxDYmnuGgqw1DkU0oeuSyw1wAw=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1776433855;\n x=1777038655;\n darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:from:to:cc:subject:date:message-id:reply-to;\n bh=s2JC4Fw+hQ/34sFT3Xd/kSRLvvCpTJOTTyJvwgteTus=;\n b=wotL2dOREQ/ztZrYUYmqkeIBxa2sndDmbkMekEIZW+s1Znx7IS2rwbEv28517yc6a8\n 6cvDIC/Fk3RPlUBor248A47Mxxl157RLg/uZgmpxi3cMiT4KV+nAaIBMkrEZG0deDddo\n BGqYaSvw60YeHPH/hstLceLFCBYIK1sCsuJFHR59JxAdWboMnMdBtJJpdfXZetL3hHIC\n rn/ridKbPDNk/ok5nIV/822rKX/1RUTtgMznSSKIprfFaTymoqJOZ69n90iFcNL1ii63\n plJDVJYN9vUm2OtnuJaLJK837UsN8VARJxs6U7AseO3AJeBhIdXuXTTsj36ZfvL6HFqa\n 25wQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776433855; x=1777038655;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=s2JC4Fw+hQ/34sFT3Xd/kSRLvvCpTJOTTyJvwgteTus=;\n b=aZA/OVVMQOy8jKyMk/RDfFTGHLT3gTTccS0SI9JkMc2Fy8cz1ZUehGcMD+hpvsY0fj\n 5VtZrXzqCgQfsZyFJLrcQBajuJAViXkqAiUfVEUIpOSqFMcSQ3qaDQjf3mAAV4milv7Z\n q1RLMjLry9mmlYBRpxoRjFwP6erhyqS/iQUpJ//O/2PqOk4FACZxhf8isU8kOQR98ZAK\n mwc+V5Kma+yQ3677TbkSxJmj5ObjT+/LTqE0SpmmE6c+634A9UqNdGY7SUXql7bemaCS\n BsOHE6kJURYCKu/0bdqLup2ogvCBVysFVak6Aw9y8MvxxGrG+yYrXjICtVtdKbaZlGHt\n aCxw==","X-Gm-Message-State":"AOJu0Yw5/Q6TY6LqI/BLkUpekOVkvP+Lgn5K6Rx4pJ1cmJkhZ4VqD2FP\n 46KzPRllG7euqbWkcsh8VqTgHBDvLkEVjX4v/1DozaMBIZG/xsPQJquKbXvjChNoK46O/TqC0Q6\n vDLDtQlo=","X-Gm-Gg":"AeBDieum2BxJw0W0ThwynQOY/SfhZ+Q5N0h0GeLnufu6XhLqcUkMRiWSIhdZWqMFKrc\n LFVFb0oX2W6EBtgc7LZR5Ov9Rikcuyyk9Ujko4EZzFmkXUhxrToh8jXwdp60H2kX8jPeVKlsHs0\n X4HpkvoZvzDCFPOYHXCirEAS63SqasMCa+sW1aI1pth0ErXXXZ9iJ61qGsBu8jvSveUbEuMQpTT\n fUgccm6NUlQOTrFj6oCPoUCQtRNf5dNbZY+cj33ozq9lIoZQZtIkDW25adl3Lx9C6ZBhSqwC5Ve\n P1tLjz8PayzM1vnZWN1KvaDyiIqv5NYyvNwTQ3/JWB8IOHKgxNmOi5ECrSE/YohHk6T4hixUmAA\n am8i68jv5bNfWh7mlToh9XmDyJTQwFMoYCu9suz1gtHXICs7zhQ5/bqxL5JQos42jxW3r+z7R9S\n ofRra7ABSfyJyZ29G+Htnjoc+BoCug5JuRkRPL14jBp1mxYImJ2+iPfB1KjVkV/oPJli4s5mow9\n R+V337EZ+3JY/HkTvpaSFECbWC6FpU46i1MwcBWYHsch4xF2AnaHQ==","X-Received":"by 2002:a05:600c:c082:b0:488:b043:5efd with SMTP id\n 5b1f17b1804b1-488fb75f7a6mr33474375e9.13.1776433855075;\n Fri, 17 Apr 2026 06:50:55 -0700 (PDT)","From":"Thomas Schwinge <tschwinge@baylibre.com>","To":"gcc-patches@gcc.gnu.org","Subject":"[PUSHED] nvptx: Support '-mptx=4.0'","Date":"Fri, 17 Apr 2026 15:50:45 +0200","Message-Id":"<20260417135045.339632-1-tschwinge@baylibre.com>","X-Mailer":"git-send-email 2.34.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"gcc/\n\t* config/nvptx/nvptx-opts.h (enum ptx_version): Add\n\t'PTX_VERSION_4_0'.\n\t* config/nvptx/nvptx.cc (ptx_version_to_string)\n\t(ptx_version_to_number): Adjust.\n\t* config/nvptx/nvptx.h (TARGET_PTX_4_0): New.\n\t* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'\n\t'4.0' for 'PTX_VERSION_4_0'.\n\t* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.0'.\n\tgcc/testsuite/\n\t* gcc.target/nvptx/mptx=4.0.c: New.\n---\n gcc/config/nvptx/nvptx-opts.h             |  1 +\n gcc/config/nvptx/nvptx.cc                 |  4 ++++\n gcc/config/nvptx/nvptx.h                  |  1 +\n gcc/config/nvptx/nvptx.opt                |  3 +++\n gcc/doc/invoke.texi                       |  2 +-\n gcc/testsuite/gcc.target/nvptx/mptx=4.0.c | 19 +++++++++++++++++++\n 6 files changed, 29 insertions(+), 1 deletion(-)\n create mode 100644 gcc/testsuite/gcc.target/nvptx/mptx=4.0.c","diff":"diff --git a/gcc/config/nvptx/nvptx-opts.h b/gcc/config/nvptx/nvptx-opts.h\nindex fd53df0861b3..08aea8b27b33 100644\n--- a/gcc/config/nvptx/nvptx-opts.h\n+++ b/gcc/config/nvptx/nvptx-opts.h\n@@ -38,6 +38,7 @@ enum ptx_version\n   PTX_VERSION_unset,\n   PTX_VERSION_default = PTX_VERSION_unset,\n   PTX_VERSION_3_1,\n+  PTX_VERSION_4_0,\n   PTX_VERSION_4_1,\n   PTX_VERSION_4_2,\n   PTX_VERSION_5_0,\ndiff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc\nindex 4cee096cca50..808dd9818ca4 100644\n--- a/gcc/config/nvptx/nvptx.cc\n+++ b/gcc/config/nvptx/nvptx.cc\n@@ -266,6 +266,8 @@ ptx_version_to_string (enum ptx_version v)\n     {\n     case PTX_VERSION_3_1:\n       return \"3.1\";\n+    case PTX_VERSION_4_0:\n+      return \"4.0\";\n     case PTX_VERSION_4_1:\n       return \"4.1\";\n     case PTX_VERSION_4_2:\n@@ -294,6 +296,8 @@ ptx_version_to_number (enum ptx_version v, bool major_p)\n     {\n     case PTX_VERSION_3_1:\n       return major_p ? 3 : 1;\n+    case PTX_VERSION_4_0:\n+      return major_p ? 4 : 0;\n     case PTX_VERSION_4_1:\n       return major_p ? 4 : 1;\n     case PTX_VERSION_4_2:\ndiff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h\nindex dd5a66a1a716..35af5ad45659 100644\n--- a/gcc/config/nvptx/nvptx.h\n+++ b/gcc/config/nvptx/nvptx.h\n@@ -99,6 +99,7 @@\n \n /* There are no 'TARGET_PTX_3_1' and smaller conditionals: our baseline is\n    PTX ISA Version 3.1.  */\n+#define TARGET_PTX_4_0 (ptx_version_option >= PTX_VERSION_4_0)\n #define TARGET_PTX_4_1 (ptx_version_option >= PTX_VERSION_4_1)\n #define TARGET_PTX_4_2 (ptx_version_option >= PTX_VERSION_4_2)\n #define TARGET_PTX_5_0 (ptx_version_option >= PTX_VERSION_5_0)\ndiff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt\nindex c3b128d3e04d..a1c8edb70df2 100644\n--- a/gcc/config/nvptx/nvptx.opt\n+++ b/gcc/config/nvptx/nvptx.opt\n@@ -172,6 +172,9 @@ Known PTX ISA versions (for use with the -mptx= option):\n EnumValue\n Enum(ptx_version) String(3.1) Value(PTX_VERSION_3_1)\n \n+EnumValue\n+Enum(ptx_version) String(4.0) Value(PTX_VERSION_4_0)\n+\n EnumValue\n Enum(ptx_version) String(4.1) Value(PTX_VERSION_4_1)\n \ndiff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi\nindex dc83623d48ba..e917338f6c91 100644\n--- a/gcc/doc/invoke.texi\n+++ b/gcc/doc/invoke.texi\n@@ -30620,7 +30620,7 @@ capable.  For instance, for @option{-march-map=sm_50} select\n Generate code for the specified PTX ISA version.\n Valid version strings are\n @samp{3.1},\n-@samp{4.1}, @samp{4.2},\n+@samp{4.0}, @samp{4.1}, @samp{4.2},\n @samp{5.0},\n @samp{6.0}, @samp{6.3},\n @samp{7.0}, @samp{7.3}, and @samp{7.8}.\ndiff --git a/gcc/testsuite/gcc.target/nvptx/mptx=4.0.c b/gcc/testsuite/gcc.target/nvptx/mptx=4.0.c\nnew file mode 100644\nindex 000000000000..0c6bf4dba7e1\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/nvptx/mptx=4.0.c\n@@ -0,0 +1,19 @@\n+/* { dg-do assemble } */\n+/* { dg-options {-march=sm_30 -mptx=4.0} } */\n+/* { dg-additional-options -save-temps } */\n+/* { dg-final { scan-assembler-times {(?n)^\t\\.version\t4\\.0$} 1 } } */\n+/* { dg-final { scan-assembler-times {(?n)^\t\\.target\tsm_30$} 1 } } */\n+\n+#if __PTX_ISA_VERSION_MAJOR__ != 4\n+#error wrong value for __PTX_ISA_VERSION_MAJOR__\n+#endif\n+\n+#if __PTX_ISA_VERSION_MINOR__ != 0\n+#error wrong value for __PTX_ISA_VERSION_MINOR__\n+#endif\n+\n+#if __PTX_SM__ != 300\n+#error wrong value for __PTX_SM__\n+#endif\n+\n+int dummy;\n","prefixes":["PUSHED"]}