https://gcc.gnu.org/g:02add658a3e161b0c6fe7e4ffd8d0e77095bd207

commit 02add658a3e161b0c6fe7e4ffd8d0e77095bd207
Author: Thomas Schwinge <tschwi...@baylibre.com>
Date:   Tue Nov 12 17:49:10 2024 +0100

    nvptx: Support '-march=sm_89'
    
            gcc/
            * config/nvptx/nvptx-sm.def: Add '89'.
            * config/nvptx/nvptx-gen.h: Regenerate.
            * config/nvptx/nvptx-gen.opt: Likewise.
            * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
            * config/nvptx/nvptx.opt (-march-map=sm_89, -march-map=sm_90)
            (march-map=sm_90a): Likewise.
            * config.gcc: Likewise.
            * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_89'.
            * config/nvptx/gen-multilib-matches-tests: Extend.
            gcc/testsuite/
            * gcc.target/nvptx/march-map=sm_89.c: Adjust.
            * gcc.target/nvptx/march-map=sm_90.c: Likewise.
            * gcc.target/nvptx/march-map=sm_90a.c: Likewise.
            * gcc.target/nvptx/march=sm_89.c: New.
            libgomp/
            * testsuite/libgomp.c/declare-variant-3-sm89.c: New.
            * testsuite/libgomp.c/declare-variant-3.h: Adjust.
    
    (cherry picked from commit ed210c69ce934b785410d7c1d7cd76d4ed46624d)

Diff:
---
 gcc/ChangeLog.omp                                  | 13 +++++
 gcc/config.gcc                                     |  2 +-
 gcc/config/nvptx/gen-multilib-matches-tests        | 65 +++++++++++++++++++---
 gcc/config/nvptx/nvptx-gen.h                       |  1 +
 gcc/config/nvptx/nvptx-gen.opt                     |  3 +
 gcc/config/nvptx/nvptx-sm.def                      |  3 +-
 gcc/config/nvptx/nvptx.cc                          |  2 +
 gcc/config/nvptx/nvptx.opt                         |  6 +-
 gcc/doc/invoke.texi                                |  2 +-
 gcc/testsuite/ChangeLog.omp                        |  8 +++
 gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c   |  8 +--
 gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c   |  8 +--
 gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c  |  8 +--
 gcc/testsuite/gcc.target/nvptx/march=sm_89.c       | 19 +++++++
 libgomp/ChangeLog.omp                              |  6 ++
 .../testsuite/libgomp.c/declare-variant-3-sm89.c   |  8 +++
 libgomp/testsuite/libgomp.c/declare-variant-3.h    |  8 +++
 17 files changed, 143 insertions(+), 27 deletions(-)

diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index c0dcd307d853..243c7864e571 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -3,6 +3,19 @@
        Backported from trunk:
        2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       * config/nvptx/nvptx-sm.def: Add '89'.
+       * config/nvptx/nvptx-gen.h: Regenerate.
+       * config/nvptx/nvptx-gen.opt: Likewise.
+       * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
+       * config/nvptx/nvptx.opt (-march-map=sm_89, -march-map=sm_90)
+       (march-map=sm_90a): Likewise.
+       * config.gcc: Likewise.
+       * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_89'.
+       * config/nvptx/gen-multilib-matches-tests: Extend.
+
+       Backported from trunk:
+       2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
+
        * config/nvptx/nvptx-opts.h (enum ptx_version): Add
        'PTX_VERSION_7_8'.
        * config/nvptx/nvptx.cc (ptx_version_to_string)
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 190ae780dbb2..29c04c01fb33 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -5611,7 +5611,7 @@ case "${target}" in
                        sm_30 | sm_35 | sm_37 \
                        | sm_52 | sm_53 \
                        | sm_70 | sm_75 \
-                       | sm_80 )
+                       | sm_80 | sm_89 )
                                TM_MULTILIB_CONFIG="$TM_MULTILIB_CONFIG 
$nvptx_multilib"
                                ;;
                        $with_arch )
diff --git a/gcc/config/nvptx/gen-multilib-matches-tests 
b/gcc/config/nvptx/gen-multilib-matches-tests
index 13b1c5b9d018..a07f19adbdb1 100644
--- a/gcc/config/nvptx/gen-multilib-matches-tests
+++ b/gcc/config/nvptx/gen-multilib-matches-tests
@@ -21,11 +21,12 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
-BEGIN '--with-arch=sm_30', '--with-multilib-list=sm_30,sm_80'
+BEGIN '--with-arch=sm_30', '--with-multilib-list=sm_30,sm_89'
 SMOID sm_30
-SMOIL sm_30 sm_80
+SMOIL sm_30 sm_89
 AEMM .=misa?sm_30
 AEMM .=misa?sm_35
 AEMM .=misa?sm_37
@@ -33,11 +34,12 @@ AEMM .=misa?sm_52
 AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
+AEMM .=misa?sm_80
 CMMC
 
-BEGIN '--with-arch=sm_30', 
'--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_53,sm_70,sm_75,sm_80'
+BEGIN '--with-arch=sm_30', 
'--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_53,sm_70,sm_75,sm_80,sm_89'
 SMOID sm_30
-SMOIL sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75 sm_80
+SMOIL sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75 sm_80 sm_89
 AEMM .=misa?sm_30
 CMMC
 
@@ -53,6 +55,7 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_35', '--with-multilib-list=sm_35,sm_30'
@@ -65,6 +68,7 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 
@@ -78,6 +82,7 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 
@@ -90,6 +95,7 @@ AEMM .=misa?sm_52
 AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM misa?sm_75=misa?sm_80
+AEMM misa?sm_75=misa?sm_89
 CMMC
 
 
@@ -103,6 +109,7 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_53,sm_37'
@@ -115,11 +122,12 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
-BEGIN '--with-arch=sm_53', 
'--with-multilib-list=sm_53=sm_30,sm_35,sm_37,sm_52,sm_70,sm_75,sm_80'
+BEGIN '--with-arch=sm_53', 
'--with-multilib-list=sm_53=sm_30,sm_35,sm_37,sm_52,sm_70,sm_75,sm_80,sm_89'
 SMOID sm_53
-SMOIL sm_53 sm_30 sm_35 sm_37 sm_52 sm_70 sm_75 sm_80
+SMOIL sm_53 sm_30 sm_35 sm_37 sm_52 sm_70 sm_75 sm_80 sm_89
 AEMM .=misa?sm_53
 CMMC
 
@@ -135,6 +143,7 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_70', '--with-multilib-list=sm_70,sm_30'
@@ -147,6 +156,7 @@ AEMM misa?sm_30=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_70', '--with-multilib-list=sm_70,sm_53'
@@ -159,6 +169,7 @@ AEMM misa?sm_53=misa?sm_52
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_70', '--with-multilib-list=sm_70,sm_53,sm_30'
@@ -170,6 +181,7 @@ AEMM misa?sm_30=misa?sm_52
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 
@@ -183,6 +195,7 @@ AEMM misa?sm_30=misa?sm_53
 AEMM misa?sm_30=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_75', '--with-multilib-list=sm_75,sm_53'
@@ -195,6 +208,7 @@ AEMM misa?sm_53=misa?sm_52
 AEMM misa?sm_53=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_75', '--with-multilib-list=sm_75,sm_30,sm_53'
@@ -206,6 +220,7 @@ AEMM misa?sm_30=misa?sm_52
 AEMM misa?sm_53=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 
@@ -220,6 +235,7 @@ AEMM .=misa?sm_53
 AEMM .=misa?sm_70
 AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_80', '--with-multilib-list=sm_80,sm_30'
@@ -232,6 +248,7 @@ AEMM misa?sm_30=misa?sm_53
 AEMM misa?sm_30=misa?sm_70
 AEMM misa?sm_30=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
 BEGIN '--with-arch=sm_80', '--with-multilib-list=sm_80,sm_75'
@@ -244,10 +261,40 @@ AEMM misa?sm_75=misa?sm_52
 AEMM misa?sm_75=misa?sm_53
 AEMM misa?sm_75=misa?sm_70
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
 CMMC
 
-BEGIN '--with-arch=sm_80', 
'--with-multilib-list=sm_80,sm_30,sm_35,sm_37,sm_52,sm_53,sm_70,sm_75'
-SMOID sm_80
-SMOIL sm_80 sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75
+
+BEGIN '--with-arch=sm_89', '--with-multilib-list=sm_89'
+SMOID sm_89
+SMOIL sm_89
+AEMM .=misa?sm_30
+AEMM .=misa?sm_35
+AEMM .=misa?sm_37
+AEMM .=misa?sm_52
+AEMM .=misa?sm_53
+AEMM .=misa?sm_70
+AEMM .=misa?sm_75
 AEMM .=misa?sm_80
+AEMM .=misa?sm_89
+CMMC
+
+BEGIN '--with-arch=sm_89', '--with-multilib-list=sm_89,sm_52'
+SMOID sm_89
+SMOIL sm_89 sm_52
+AEMM misa?sm_52=misa?sm_30
+AEMM misa?sm_52=misa?sm_35
+AEMM misa?sm_52=misa?sm_37
+AEMM misa?sm_52=misa?sm_53
+AEMM misa?sm_52=misa?sm_70
+AEMM misa?sm_52=misa?sm_75
+AEMM misa?sm_52=misa?sm_80
+AEMM .=misa?sm_89
+CMMC
+
+
+BEGIN '--with-arch=sm_89', 
'--with-multilib-list=sm_89,sm_30,sm_35,sm_37,sm_52,sm_53,sm_70,sm_75,sm_80'
+SMOID sm_89
+SMOIL sm_89 sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75 sm_80
+AEMM .=misa?sm_89
 CMMC
diff --git a/gcc/config/nvptx/nvptx-gen.h b/gcc/config/nvptx/nvptx-gen.h
index 5f271a33c357..416ee8a26290 100644
--- a/gcc/config/nvptx/nvptx-gen.h
+++ b/gcc/config/nvptx/nvptx-gen.h
@@ -29,3 +29,4 @@
 #define TARGET_SM70 (ptx_isa_option >= PTX_ISA_SM70)
 #define TARGET_SM75 (ptx_isa_option >= PTX_ISA_SM75)
 #define TARGET_SM80 (ptx_isa_option >= PTX_ISA_SM80)
+#define TARGET_SM89 (ptx_isa_option >= PTX_ISA_SM89)
diff --git a/gcc/config/nvptx/nvptx-gen.opt b/gcc/config/nvptx/nvptx-gen.opt
index 0d76885c475e..cc8492e086bc 100644
--- a/gcc/config/nvptx/nvptx-gen.opt
+++ b/gcc/config/nvptx/nvptx-gen.opt
@@ -46,3 +46,6 @@ Enum(ptx_isa) String(sm_75) Value(PTX_ISA_SM75)
 
 EnumValue
 Enum(ptx_isa) String(sm_80) Value(PTX_ISA_SM80)
+
+EnumValue
+Enum(ptx_isa) String(sm_89) Value(PTX_ISA_SM89)
diff --git a/gcc/config/nvptx/nvptx-sm.def b/gcc/config/nvptx/nvptx-sm.def
index 0fafc8aeddfa..5656ac73cf73 100644
--- a/gcc/config/nvptx/nvptx-sm.def
+++ b/gcc/config/nvptx/nvptx-sm.def
@@ -27,6 +27,7 @@ NVPTX_SM (52, NVPTX_SM_SEP)
 NVPTX_SM (53, NVPTX_SM_SEP)
 NVPTX_SM (70, NVPTX_SM_SEP)
 NVPTX_SM (75, NVPTX_SM_SEP)
-NVPTX_SM (80,)
+NVPTX_SM (80, NVPTX_SM_SEP)
+NVPTX_SM (89,)
 
 #undef NVPTX_SM_SEP
diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc
index da3e771f12ca..8ddd0e715bf7 100644
--- a/gcc/config/nvptx/nvptx.cc
+++ b/gcc/config/nvptx/nvptx.cc
@@ -232,6 +232,8 @@ first_ptx_version_supporting_sm (enum ptx_isa sm)
       return PTX_VERSION_6_3;
     case PTX_ISA_SM80:
       return PTX_VERSION_7_0;
+    case PTX_ISA_SM89:
+      return PTX_VERSION_7_8;
     default:
       gcc_unreachable ();
     }
diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt
index 842cbbbedeee..f2077f4c750a 100644
--- a/gcc/config/nvptx/nvptx.opt
+++ b/gcc/config/nvptx/nvptx.opt
@@ -112,13 +112,13 @@ march-map=sm_87
 Target RejectNegative Alias(misa=,sm_80)
 
 march-map=sm_89
-Target RejectNegative Alias(misa=,sm_80)
+Target RejectNegative Alias(misa=,sm_89)
 
 march-map=sm_90
-Target RejectNegative Alias(misa=,sm_80)
+Target RejectNegative Alias(misa=,sm_89)
 
 march-map=sm_90a
-Target RejectNegative Alias(misa=,sm_80)
+Target RejectNegative Alias(misa=,sm_89)
 
 Enum
 Name(ptx_version) Type(enum ptx_version)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index ffa4b6b1deb6..f7a7382cf458 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -30029,7 +30029,7 @@ Valid architecture strings are
 @samp{sm_30}, @samp{sm_35}, @samp{sm_37},
 @samp{sm_52}, @samp{sm_53},
 @samp{sm_70}, @samp{sm_75},
-and @samp{sm_80}.
+@samp{sm_80}, and @samp{sm_89}.
 The default depends on how the compiler has been configured, see
 @option{--with-arch}.
 
diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp
index af098a074a36..7017aa7dcf03 100644
--- a/gcc/testsuite/ChangeLog.omp
+++ b/gcc/testsuite/ChangeLog.omp
@@ -3,6 +3,14 @@
        Backported from trunk:
        2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       * gcc.target/nvptx/march-map=sm_89.c: Adjust.
+       * gcc.target/nvptx/march-map=sm_90.c: Likewise.
+       * gcc.target/nvptx/march-map=sm_90a.c: Likewise.
+       * gcc.target/nvptx/march=sm_89.c: New.
+
+       Backported from trunk:
+       2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
+
        * gcc.target/nvptx/mptx=7.8.c: New.
 
        Backported from trunk:
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c 
b/gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c
index 24aabf6710fa..996af781f5bd 100644
--- a/gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c
@@ -1,18 +1,18 @@
 /* { dg-do assemble } */
 /* { dg-options {-march-map=sm_89 -mptx=_} } */
 /* { dg-additional-options -save-temps } */
-/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.0$} 1 } } */
-/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_80$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.8$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_89$} 1 } } */
 
 #if __PTX_ISA_VERSION_MAJOR__ != 7
 #error wrong value for __PTX_ISA_VERSION_MAJOR__
 #endif
 
-#if __PTX_ISA_VERSION_MINOR__ != 0
+#if __PTX_ISA_VERSION_MINOR__ != 8
 #error wrong value for __PTX_ISA_VERSION_MINOR__
 #endif
 
-#if __PTX_SM__ != 800
+#if __PTX_SM__ != 890
 #error wrong value for __PTX_SM__
 #endif
 
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c 
b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c
index 77aea4e6c992..0915df7a150f 100644
--- a/gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c
@@ -1,18 +1,18 @@
 /* { dg-do assemble } */
 /* { dg-options {-march-map=sm_90 -mptx=_} } */
 /* { dg-additional-options -save-temps } */
-/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.0$} 1 } } */
-/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_80$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.8$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_89$} 1 } } */
 
 #if __PTX_ISA_VERSION_MAJOR__ != 7
 #error wrong value for __PTX_ISA_VERSION_MAJOR__
 #endif
 
-#if __PTX_ISA_VERSION_MINOR__ != 0
+#if __PTX_ISA_VERSION_MINOR__ != 8
 #error wrong value for __PTX_ISA_VERSION_MINOR__
 #endif
 
-#if __PTX_SM__ != 800
+#if __PTX_SM__ != 890
 #error wrong value for __PTX_SM__
 #endif
 
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c 
b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c
index b83fe654cf66..08a701502572 100644
--- a/gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c
@@ -1,18 +1,18 @@
 /* { dg-do assemble } */
 /* { dg-options {-march-map=sm_90a -mptx=_} } */
 /* { dg-additional-options -save-temps } */
-/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.0$} 1 } } */
-/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_80$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.8$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_89$} 1 } } */
 
 #if __PTX_ISA_VERSION_MAJOR__ != 7
 #error wrong value for __PTX_ISA_VERSION_MAJOR__
 #endif
 
-#if __PTX_ISA_VERSION_MINOR__ != 0
+#if __PTX_ISA_VERSION_MINOR__ != 8
 #error wrong value for __PTX_ISA_VERSION_MINOR__
 #endif
 
-#if __PTX_SM__ != 800
+#if __PTX_SM__ != 890
 #error wrong value for __PTX_SM__
 #endif
 
diff --git a/gcc/testsuite/gcc.target/nvptx/march=sm_89.c 
b/gcc/testsuite/gcc.target/nvptx/march=sm_89.c
new file mode 100644
index 000000000000..bd57061759dc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march=sm_89.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march=sm_89 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^    \.version       7\.8$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^    \.target        sm_89$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#error wrong value for __PTX_ISA_VERSION_MAJOR__
+#endif
+
+#if __PTX_ISA_VERSION_MINOR__ != 8
+#error wrong value for __PTX_ISA_VERSION_MINOR__
+#endif
+
+#if __PTX_SM__ != 890
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp
index cc8440865db3..e655bd4051b9 100644
--- a/libgomp/ChangeLog.omp
+++ b/libgomp/ChangeLog.omp
@@ -3,6 +3,12 @@
        Backported from trunk:
        2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       * testsuite/libgomp.c/declare-variant-3-sm89.c: New.
+       * testsuite/libgomp.c/declare-variant-3.h: Adjust.
+
+       Backported from trunk:
+       2024-12-06  Thomas Schwinge  <tschwi...@baylibre.com>
+
        * testsuite/libgomp.c/declare-variant-3-sm52.c: New.
        * testsuite/libgomp.c/declare-variant-3.h: Adjust.
 
diff --git a/libgomp/testsuite/libgomp.c/declare-variant-3-sm89.c 
b/libgomp/testsuite/libgomp.c/declare-variant-3-sm89.c
new file mode 100644
index 000000000000..cd2e472a1040
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/declare-variant-3-sm89.c
@@ -0,0 +1,8 @@
+/* { dg-do link { target { offload_target_nvptx } } } */
+/* { dg-additional-options -foffload=nvptx-none } */
+/* { dg-additional-options "-foffload=-misa=sm_89 -foffload=-mptx=_" } */
+/* { dg-additional-options "-foffload=-fdump-tree-optimized" } */
+
+#include "declare-variant-3.h"
+
+/* { dg-final { only_for_offload_target nvptx-none scan-offload-tree-dump "= 
f89 \\(\\);" "optimized" } } */
diff --git a/libgomp/testsuite/libgomp.c/declare-variant-3.h 
b/libgomp/testsuite/libgomp.c/declare-variant-3.h
index 8db0fc536adb..c9c8f4a385fb 100644
--- a/libgomp/testsuite/libgomp.c/declare-variant-3.h
+++ b/libgomp/testsuite/libgomp.c/declare-variant-3.h
@@ -56,6 +56,13 @@ f80 (void)
   return 80;
 }
 
+__attribute__ ((noipa))
+int
+f89 (void)
+{
+  return 89;
+}
+
 #pragma omp declare variant (f30) match (device={isa("sm_30")})
 #pragma omp declare variant (f35) match (device={isa("sm_35")})
 #pragma omp declare variant (f37) match (device={isa("sm_37")})
@@ -64,6 +71,7 @@ f80 (void)
 #pragma omp declare variant (f70) match (device={isa("sm_70")})
 #pragma omp declare variant (f75) match (device={isa("sm_75")})
 #pragma omp declare variant (f80) match (device={isa("sm_80")})
+#pragma omp declare variant (f89) match (device={isa("sm_89")})
 __attribute__ ((noipa))
 int
 f (void)

Reply via email to