aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2025-05-07 15:37:17 +0200
committerThomas Schwinge <tschwinge@baylibre.com>2025-07-21 16:28:47 +0200
commit33c7505fda084698618c88165b20bf2c5b850e9c (patch)
tree916ed7c28bfaecd26fe8fbd5f85940dd66eb0a59 /gcc
parentfe9faa20d37be3cfc15d82420ab7193c7dfc2b05 (diff)
downloadgcc-33c7505fda084698618c88165b20bf2c5b850e9c.zip
gcc-33c7505fda084698618c88165b20bf2c5b850e9c.tar.gz
gcc-33c7505fda084698618c88165b20bf2c5b850e9c.tar.bz2
nvptx: Support '-mptx=5.0'
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)
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/nvptx/nvptx-opts.h1
-rw-r--r--gcc/config/nvptx/nvptx.cc4
-rw-r--r--gcc/config/nvptx/nvptx.h1
-rw-r--r--gcc/config/nvptx/nvptx.opt3
-rw-r--r--gcc/doc/invoke.texi1
-rw-r--r--gcc/testsuite/gcc.target/nvptx/mptx=5.0.c19
6 files changed, 29 insertions, 0 deletions
diff --git a/gcc/config/nvptx/nvptx-opts.h b/gcc/config/nvptx/nvptx-opts.h
index d886701..07bcd32 100644
--- a/gcc/config/nvptx/nvptx-opts.h
+++ b/gcc/config/nvptx/nvptx-opts.h
@@ -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,
diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc
index 115d34f..48345e0 100644
--- a/gcc/config/nvptx/nvptx.cc
+++ b/gcc/config/nvptx/nvptx.cc
@@ -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:
diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h
index 0c544d3..b9440f3 100644
--- a/gcc/config/nvptx/nvptx.h
+++ b/gcc/config/nvptx/nvptx.h
@@ -101,6 +101,7 @@
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)
diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt
index ce9fbc7..d53a727 100644
--- a/gcc/config/nvptx/nvptx.opt
+++ b/gcc/config/nvptx/nvptx.opt
@@ -134,6 +134,9 @@ 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)
EnumValue
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index c122724..78a1a41 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -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
index 0000000..5d6163e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/mptx=5.0.c
@@ -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;