https://gcc.gnu.org/g:18f34aa30cb3919e227ec2abde79bb3f1d41a851

commit 18f34aa30cb3919e227ec2abde79bb3f1d41a851
Author: Thomas Schwinge <tschwi...@baylibre.com>
Date:   Sun Nov 10 17:35:07 2024 +0100

    nvptx: Expose '-mptx=4.2'
    
    'PTX_VERSION_4_2' was added in commit 
decde11183bdccc46587d6614b75f3d56a2f2e4a
    "[nvptx] Choose -mptx default based on -misa" for use for '-march=sm_52'
    ('first_ptx_version_supporting_sm', 'PTX_ISA_SM53'), as documented by 
Nvidia.
    However, '-mptx=4.2' wasn't exposed to the user, but there's no reason not 
to.
    
            gcc/
            * config/nvptx/nvptx.h (TARGET_PTX_4_2): New.
            * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
            '4.2' for 'PTX_VERSION_4_2'.
            * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.2'.
            gcc/testsuite/
            * gcc.target/nvptx/mptx=4.2.c: New.
    
    (cherry picked from commit 1af83aa09979e5f2ca36f844d56ccd629268057d)

Diff:
---
 gcc/ChangeLog.omp                         |  8 ++++++++
 gcc/config/nvptx/nvptx.h                  |  1 +
 gcc/config/nvptx/nvptx.opt                |  3 +++
 gcc/doc/invoke.texi                       | 10 +++++++---
 gcc/testsuite/ChangeLog.omp               |  5 +++++
 gcc/testsuite/gcc.target/nvptx/mptx=4.2.c | 19 +++++++++++++++++++
 6 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index 6b0a3860ce60..ec728b7751a7 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -3,6 +3,14 @@
        Backported from trunk:
        2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       * config/nvptx/nvptx.h (TARGET_PTX_4_2): New.
+       * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
+       '4.2' for 'PTX_VERSION_4_2'.
+       * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.2'.
+
+       Backported from trunk:
+       2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
+
        * config/nvptx/nvptx-opts.h (enum ptx_version): Remove
        'PTX_VERSION_3_0'.
        * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h
index 0cf7640e5ece..f2b65435a528 100644
--- a/gcc/config/nvptx/nvptx.h
+++ b/gcc/config/nvptx/nvptx.h
@@ -93,6 +93,7 @@
 
 /* There are no 'TARGET_PTX_3_1' and smaller conditionals: our baseline is
    PTX ISA Version 3.1.  */
+#define TARGET_PTX_4_2 (ptx_version_option >= PTX_VERSION_4_2)
 #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 53ddf451836e..408c88354446 100644
--- a/gcc/config/nvptx/nvptx.opt
+++ b/gcc/config/nvptx/nvptx.opt
@@ -127,6 +127,9 @@ Known PTX ISA versions (for use with the -mptx= option):
 EnumValue
 Enum(ptx_version) String(3.1) Value(PTX_VERSION_3_1)
 
+EnumValue
+Enum(ptx_version) String(4.2) Value(PTX_VERSION_4_2)
+
 EnumValue
 Enum(ptx_version) String(6.0) Value(PTX_VERSION_6_0)
 
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 74aeb5481d67..85a8c89867e8 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -30050,9 +30050,13 @@ capable.  For instance, for @option{-march-map=sm_50} 
select
 
 @opindex mptx
 @item -mptx=@var{version-string}
-Generate code for the specified PTX ISA version (e.g.@: @samp{7.0}).
-Valid version strings include @samp{3.1}, @samp{6.0}, @samp{6.3}, and
-@samp{7.0}.  The default PTX ISA version is 6.0, unless a higher
+Generate code for the specified PTX ISA version.
+Valid version strings are
+@samp{3.1},
+@samp{4.2},
+@samp{6.0}, @samp{6.3},
+and @samp{7.0}.
+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/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp
index 26db6e3dd097..90f9364c7373 100644
--- a/gcc/testsuite/ChangeLog.omp
+++ b/gcc/testsuite/ChangeLog.omp
@@ -3,6 +3,11 @@
        Backported from trunk:
        2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       * gcc.target/nvptx/mptx=4.2.c: New.
+
+       Backported from trunk:
+       2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
+
        * gcc.target/nvptx/march-map.c: Remove; expanded into...
        * gcc.target/nvptx/march-map=sm_50.c: ... this.
        * gcc.target/nvptx/march-map=sm_30.c: New.
diff --git a/gcc/testsuite/gcc.target/nvptx/mptx=4.2.c 
b/gcc/testsuite/gcc.target/nvptx/mptx=4.2.c
new file mode 100644
index 000000000000..e17ee1babf96
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/mptx=4.2.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march=sm_30 -mptx=4.2} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^    \.version       4\.2$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_30$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 4
+#error wrong value for __PTX_ISA_VERSION_MAJOR__
+#endif
+
+#if __PTX_ISA_VERSION_MINOR__ != 2
+#error wrong value for __PTX_ISA_VERSION_MINOR__
+#endif
+
+#if __PTX_SM__ != 300
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;

Reply via email to