]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
nvptx: Support '-mptx=7.3'
authorThomas Schwinge <tschwinge@baylibre.com>
Sun, 10 Nov 2024 12:07:32 +0000 (13:07 +0100)
committerThomas Schwinge <tschwinge@baylibre.com>
Wed, 8 Jan 2025 22:22:21 +0000 (23:22 +0100)
gcc/
* config/nvptx/nvptx-opts.h (enum ptx_version): Add
'PTX_VERSION_7_3'.
* config/nvptx/nvptx.cc (ptx_version_to_string)
(ptx_version_to_number): Adjust.
* config/nvptx/nvptx.h (TARGET_PTX_7_3): New.
* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
'7.3' for 'PTX_VERSION_7_3'.
* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=7.3'.
gcc/testsuite/
* gcc.target/nvptx/mptx=7.3.c: New.

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=7.3.c [new file with mode: 0644]

index 86947d67bc8d1c01ce131323fac605a04e7729fd..d8867017892b2b3b1afebd16489345c5a7c6a151 100644 (file)
@@ -43,6 +43,7 @@ enum ptx_version
   PTX_VERSION_6_0,
   PTX_VERSION_6_3,
   PTX_VERSION_7_0,
+  PTX_VERSION_7_3,
   PTX_VERSION_7_8
 };
 
index 8e79ece06240e9e68bdce945fa086ad205ad872a..eb948d5b07e11fe9ec99c75907b31a965eaa9bf5 100644 (file)
@@ -267,6 +267,8 @@ ptx_version_to_string (enum ptx_version v)
       return "6.3";
     case PTX_VERSION_7_0:
       return "7.0";
+    case PTX_VERSION_7_3:
+      return "7.3";
     case PTX_VERSION_7_8:
       return "7.8";
     default:
@@ -291,6 +293,8 @@ ptx_version_to_number (enum ptx_version v, bool major_p)
       return major_p ? 6 : 3;
     case PTX_VERSION_7_0:
       return major_p ? 7 : 0;
+    case PTX_VERSION_7_3:
+      return major_p ? 7 : 3;
     case PTX_VERSION_7_8:
       return major_p ? 7 : 8;
     default:
index 985f9bc69ceb94bb344cacc45c17bb47abd9be36..4b51d176103db13b1424535321563bebd8ceceaf 100644 (file)
 #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)
+#define TARGET_PTX_7_3 (ptx_version_option >= PTX_VERSION_7_3)
 #define TARGET_PTX_7_8 (ptx_version_option >= PTX_VERSION_7_8)
 
 /* Registers.  Since ptx is a virtual target, we just define a few
index f29877382f95fbbbcaa607e32ad138206077aea3..273d366d35e6ceb53c7312c4529f281e160baeb7 100644 (file)
@@ -142,6 +142,9 @@ Enum(ptx_version) String(6.3) Value(PTX_VERSION_6_3)
 EnumValue
 Enum(ptx_version) String(7.0) Value(PTX_VERSION_7_0)
 
+EnumValue
+Enum(ptx_version) String(7.3) Value(PTX_VERSION_7_3)
+
 EnumValue
 Enum(ptx_version) String(7.8) Value(PTX_VERSION_7_8)
 
index c9733d6cb00974656ff68be2ff71f869f7ffd299..480c48c5372aa6b3d26edc95773ce69bfa9a845c 100644 (file)
@@ -30211,7 +30211,7 @@ Valid version strings are
 @samp{3.1},
 @samp{4.1}, @samp{4.2},
 @samp{6.0}, @samp{6.3},
-@samp{7.0}, and @samp{7.8}.
+@samp{7.0}, @samp{7.3}, and @samp{7.8}.
 The default PTX ISA version is 6.0, unless a higher
 version is required for specified PTX ISA target architecture via
 option @option{-march=}.
diff --git a/gcc/testsuite/gcc.target/nvptx/mptx=7.3.c b/gcc/testsuite/gcc.target/nvptx/mptx=7.3.c
new file mode 100644 (file)
index 0000000..def7e71
--- /dev/null
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march=sm_30 -mptx=7.3} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.3$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_30$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#error wrong value for __PTX_ISA_VERSION_MAJOR__
+#endif
+
+#if __PTX_ISA_VERSION_MINOR__ != 3
+#error wrong value for __PTX_ISA_VERSION_MINOR__
+#endif
+
+#if __PTX_SM__ != 300
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;