aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2024-11-10 18:29:25 +0100
committerThomas Schwinge <tschwinge@baylibre.com>2024-12-06 11:39:49 +0100
commitee6711ead30876daf2a8a66f8647cad95470fe79 (patch)
tree9ebbed27758d9c4afcec7a477f1969c26b38cefd /gcc
parented96ce81b19b76ba6a5edfe68dd86d8ea319c6d9 (diff)
downloadgcc-ee6711ead30876daf2a8a66f8647cad95470fe79.zip
gcc-ee6711ead30876daf2a8a66f8647cad95470fe79.tar.gz
gcc-ee6711ead30876daf2a8a66f8647cad95470fe79.tar.bz2
nvptx: Enhance '-march-map=[...]' test cases
This expands upon the one test case added in commit de0ef04419e90eacf0d1ddb265552a1b08c18d4b "[nvptx] Add march-map". gcc/testsuite/ * 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. * gcc.target/nvptx/march-map=sm_32.c: Likewise. * gcc.target/nvptx/march-map=sm_35.c: Likewise. * gcc.target/nvptx/march-map=sm_37.c: Likewise. * gcc.target/nvptx/march-map=sm_52.c: Likewise. * gcc.target/nvptx/march-map=sm_53.c: Likewise. * gcc.target/nvptx/march-map=sm_60.c: Likewise. * gcc.target/nvptx/march-map=sm_61.c: Likewise. * gcc.target/nvptx/march-map=sm_62.c: Likewise. * gcc.target/nvptx/march-map=sm_70.c: Likewise. * gcc.target/nvptx/march-map=sm_72.c: Likewise. * gcc.target/nvptx/march-map=sm_75.c: Likewise. * gcc.target/nvptx/march-map=sm_80.c: Likewise. * gcc.target/nvptx/march-map=sm_86.c: Likewise. * gcc.target/nvptx/march-map=sm_87.c: Likewise. * gcc.target/nvptx/march-map=sm_89.c: Likewise. * gcc.target/nvptx/march-map=sm_90.c: Likewise. * gcc.target/nvptx/march-map=sm_90a.c: Likewise. * gcc.target/nvptx/main.c: Remove.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.target/nvptx/main.c7
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map.c5
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_30.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_32.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_35.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_37.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_52.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_53.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_60.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_61.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_62.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_70.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_72.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_75.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_80.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_86.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_87.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c19
-rw-r--r--gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c19
21 files changed, 361 insertions, 12 deletions
diff --git a/gcc/testsuite/gcc.target/nvptx/main.c b/gcc/testsuite/gcc.target/nvptx/main.c
deleted file mode 100644
index 3af2b57..0000000
--- a/gcc/testsuite/gcc.target/nvptx/main.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/* { dg-do link } */
-
-int
-main (void)
-{
- return 0;
-}
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map.c b/gcc/testsuite/gcc.target/nvptx/march-map.c
deleted file mode 100644
index 00838e5..0000000
--- a/gcc/testsuite/gcc.target/nvptx/march-map.c
+++ /dev/null
@@ -1,5 +0,0 @@
-/* { dg-options "-march-map=sm_50" } */
-
-#include "main.c"
-
-/* { dg-final { scan-assembler-times "\\.target\tsm_35" 1 } } */
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_30.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_30.c
new file mode 100644
index 0000000..b69926e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_30.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_30 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_30$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_32.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_32.c
new file mode 100644
index 0000000..dcf9e05
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_32.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_32 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_30$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_35.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_35.c
new file mode 100644
index 0000000..ce46690
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_35.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_35 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_35$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 350
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_37.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_37.c
new file mode 100644
index 0000000..6e3928e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_37.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_37 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_35$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 350
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c
new file mode 100644
index 0000000..2e843af
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_50.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_50 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_35$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 350
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_52.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_52.c
new file mode 100644
index 0000000..e6c6eac
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_52.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_52 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_35$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 350
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_53.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_53.c
new file mode 100644
index 0000000..3fc4e00
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_53.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_53 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_53$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 530
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_60.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_60.c
new file mode 100644
index 0000000..63e8355
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_60.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_60 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_53$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 530
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_61.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_61.c
new file mode 100644
index 0000000..6e047e6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_61.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_61 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_53$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 530
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_62.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_62.c
new file mode 100644
index 0000000..1763835
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_62.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_62 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_53$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 530
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_70.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_70.c
new file mode 100644
index 0000000..7223bba
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_70.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_70 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_70$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 700
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_72.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_72.c
new file mode 100644
index 0000000..c5e2afd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_72.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_72 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.0$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_70$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 700
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_75.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_75.c
new file mode 100644
index 0000000..3c036ab
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_75.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_75 -mptx=_} } */
+/* { dg-additional-options -save-temps } */
+/* { dg-final { scan-assembler-times {(?n)^ \.version 6\.3$} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_75$} 1 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 6
+#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__ != 750
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_80.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_80.c
new file mode 100644
index 0000000..caa0679
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_80.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_80 -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 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#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__ != 800
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_86.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_86.c
new file mode 100644
index 0000000..3636c89
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_86.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_86 -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 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#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__ != 800
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_87.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_87.c
new file mode 100644
index 0000000..c298e61
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_87.c
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march-map=sm_87 -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 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#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__ != 800
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c
new file mode 100644
index 0000000..24aabf6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_89.c
@@ -0,0 +1,19 @@
+/* { 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 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#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__ != 800
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c
new file mode 100644
index 0000000..77aea4e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90.c
@@ -0,0 +1,19 @@
+/* { 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 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#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__ != 800
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
diff --git a/gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c
new file mode 100644
index 0000000..b83fe65
--- /dev/null
+++ b/gcc/testsuite/gcc.target/nvptx/march-map=sm_90a.c
@@ -0,0 +1,19 @@
+/* { 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 } } */
+
+#if __PTX_ISA_VERSION_MAJOR__ != 7
+#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__ != 800
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;