]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
nvptx: Support '-mptx=5.0'
authorThomas Schwinge <tschwinge@baylibre.com>
Wed, 7 May 2025 13:37:17 +0000 (15:37 +0200)
committerThomas Schwinge <tschwinge@baylibre.com>
Mon, 21 Jul 2025 14:28:47 +0000 (16:28 +0200)
gcc/
* config/nvptx/nvptx-opts.h (enum ptx_version): Add
'PTX_VERSION_5_0'.
* config/nvptx/nvptx.cc (ptx_version_to_string)
(ptx_version_to_number): Adjust.
* config/nvptx/nvptx.h (TARGET_PTX_5_0): New.
* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
'5.0' for 'PTX_VERSION_5_0'.
* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=5.0'.
gcc/testsuite/
* gcc.target/nvptx/mptx=5.0.c: New.

(cherry picked from commit 97616687149f115e0ab946b9a05a9f8c1e47429e)

gcc/config/nvptx/nvptx-opts.h
gcc/config/nvptx/nvptx.cc
gcc/config/nvptx/nvptx.h
gcc/config/nvptx/nvptx.opt
gcc/doc/invoke.texi
gcc/testsuite/gcc.target/nvptx/mptx=5.0.c [new file with mode: 0644]

index d8867017892b2b3b1afebd16489345c5a7c6a151..07bcd32d55c07027a84c33f6e6e7250540f9a1cb 100644 (file)
@@ -40,6 +40,7 @@ enum ptx_version
   PTX_VERSION_3_1,
   PTX_VERSION_4_1,
   PTX_VERSION_4_2,
+  PTX_VERSION_5_0,
   PTX_VERSION_6_0,
   PTX_VERSION_6_3,
   PTX_VERSION_7_0,
index 115d34f6dfb312a3e5b4363b933c4c3e33d7ae78..48345e01ade5c06dd7a6355f6b8964b35909e94e 100644 (file)
@@ -274,6 +274,8 @@ ptx_version_to_string (enum ptx_version v)
       return "4.1";
     case PTX_VERSION_4_2:
       return "4.2";
+    case PTX_VERSION_5_0:
+      return "5.0";
     case PTX_VERSION_6_0:
       return "6.0";
     case PTX_VERSION_6_3:
@@ -300,6 +302,8 @@ ptx_version_to_number (enum ptx_version v, bool major_p)
       return major_p ? 4 : 1;
     case PTX_VERSION_4_2:
       return major_p ? 4 : 2;
+    case PTX_VERSION_5_0:
+      return major_p ? 5 : 0;
     case PTX_VERSION_6_0:
       return major_p ? 6 : 0;
     case PTX_VERSION_6_3:
index 0c544d3c825c7dacbce4abd3b3cc2fff73a05b23..b9440f35b2a7fef5c91a8a84d7c2083b92b02346 100644 (file)
    PTX ISA Version 3.1.  */
 #define TARGET_PTX_4_1 (ptx_version_option >= PTX_VERSION_4_1)
 #define TARGET_PTX_4_2 (ptx_version_option >= PTX_VERSION_4_2)
+#define TARGET_PTX_5_0 (ptx_version_option >= PTX_VERSION_5_0)
 #define TARGET_PTX_6_0 (ptx_version_option >= PTX_VERSION_6_0)
 #define TARGET_PTX_6_3 (ptx_version_option >= PTX_VERSION_6_3)
 #define TARGET_PTX_7_0 (ptx_version_option >= PTX_VERSION_7_0)
index ce9fbc7312e0bba3fdbad7205964c755962f4110..d53a7271873c3697f4026428ccca01cf36954d8f 100644 (file)
@@ -133,6 +133,9 @@ Enum(ptx_version) String(4.1) Value(PTX_VERSION_4_1)
 EnumValue
 Enum(ptx_version) String(4.2) Value(PTX_VERSION_4_2)
 
+EnumValue
+Enum(ptx_version) String(5.0) Value(PTX_VERSION_5_0)
+
 EnumValue
 Enum(ptx_version) String(6.0) Value(PTX_VERSION_6_0)
 
index c122724ffd9ad33ee0d19288ca4f478748343c00..78a1a41a49c4351f32dd109ef9c8ad2526521a62 100644 (file)
@@ -30711,6 +30711,7 @@ Generate code for the specified PTX ISA version.
 Valid version strings are
 @samp{3.1},
 @samp{4.1}, @samp{4.2},
+@samp{5.0},
 @samp{6.0}, @samp{6.3},
 @samp{7.0}, @samp{7.3}, and @samp{7.8}.
 The default PTX ISA version is the one that added support for the
diff --git a/gcc/testsuite/gcc.target/nvptx/mptx=5.0.c b/gcc/testsuite/gcc.target/nvptx/mptx=5.0.c
new file mode 100644 (file)
index 0000000..5d6163e
--- /dev/null
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march=sm_30 -mptx=5.0} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^    \.version       5\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_30$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 5
+#error wrong value for __PTX_ISA_VERSION_MAJOR__
+#endif
+
+#if __PTX_ISA_VERSION_MINOR__ != 0
+#error wrong value for __PTX_ISA_VERSION_MINOR__
+#endif
+
+#if __PTX_SM__ != 300
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;