@@ -5642,7 +5642,7 @@ case "${target}" in
for nvptx_multilib in $nvptx_multilibs; do
case $nvptx_multilib in
#TODO 'sm_[...]' list per 'nvptx-sm.def'.
- sm_30 | sm_35 \
+ sm_30 | sm_35 | sm_37 \
| sm_53 \
| sm_70 | sm_75 \
| sm_80 )
@@ -15,6 +15,7 @@ SMOID sm_30
SMOIL sm_30
AEMM .=misa?sm_30
AEMM .=misa?sm_35
+AEMM .=misa?sm_37
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
@@ -26,14 +27,15 @@ SMOID sm_30
SMOIL sm_30 sm_80
AEMM .=misa?sm_30
AEMM .=misa?sm_35
+AEMM .=misa?sm_37
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
CMMC
-BEGIN '--with-arch=sm_30', '--with-multilib-list=sm_30,sm_35,sm_53,sm_70,sm_75,sm_80'
+BEGIN '--with-arch=sm_30', '--with-multilib-list=sm_30,sm_35,sm_37,sm_53,sm_70,sm_75,sm_80'
SMOID sm_30
-SMOIL sm_30 sm_35 sm_53 sm_70 sm_75 sm_80
+SMOIL sm_30 sm_35 sm_37 sm_53 sm_70 sm_75 sm_80
AEMM .=misa?sm_30
CMMC
@@ -43,6 +45,7 @@ SMOID sm_35
SMOIL sm_35
AEMM .=misa?sm_30
AEMM .=misa?sm_35
+AEMM .=misa?sm_37
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
@@ -53,6 +56,19 @@ BEGIN '--with-arch=sm_35', '--with-multilib-list=sm_35,sm_30'
SMOID sm_35
SMOIL sm_35 sm_30
AEMM .=misa?sm_35
+AEMM .=misa?sm_37
+AEMM .=misa?sm_53
+AEMM .=misa?sm_70
+AEMM .=misa?sm_75
+AEMM .=misa?sm_80
+CMMC
+
+
+BEGIN '--with-arch=sm_37', '--with-multilib-list=sm_37,sm_30'
+SMOID sm_37
+SMOIL sm_37 sm_30
+AEMM misa?sm_30=misa?sm_35
+AEMM .=misa?sm_37
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
@@ -64,15 +80,27 @@ BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_53,sm_30'
SMOID sm_53
SMOIL sm_53 sm_30
AEMM misa?sm_30=misa?sm_35
+AEMM misa?sm_30=misa?sm_37
+AEMM .=misa?sm_53
+AEMM .=misa?sm_70
+AEMM .=misa?sm_75
+AEMM .=misa?sm_80
+CMMC
+
+BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_53,sm_37'
+SMOID sm_53
+SMOIL sm_53 sm_37
+AEMM misa?sm_37=misa?sm_30
+AEMM misa?sm_37=misa?sm_35
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
CMMC
-BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_53,sm_30,sm_35,sm_70,sm_75,sm_80'
+BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_53,sm_30,sm_35,sm_37,sm_70,sm_75,sm_80'
SMOID sm_53
-SMOIL sm_53 sm_30 sm_35 sm_70 sm_75 sm_80
+SMOIL sm_53 sm_30 sm_35 sm_37 sm_70 sm_75 sm_80
AEMM .=misa?sm_53
CMMC
@@ -82,6 +110,7 @@ SMOID sm_70
SMOIL sm_70
AEMM .=misa?sm_30
AEMM .=misa?sm_35
+AEMM .=misa?sm_37
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
@@ -92,6 +121,7 @@ BEGIN '--with-arch=sm_70', '--with-multilib-list=sm_70,sm_30'
SMOID sm_70
SMOIL sm_70 sm_30
AEMM misa?sm_30=misa?sm_35
+AEMM misa?sm_30=misa?sm_37
AEMM misa?sm_30=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
@@ -103,6 +133,7 @@ SMOID sm_70
SMOIL sm_70 sm_53
AEMM misa?sm_53=misa?sm_30
AEMM misa?sm_53=misa?sm_35
+AEMM misa?sm_53=misa?sm_37
AEMM .=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
@@ -112,6 +143,7 @@ BEGIN '--with-arch=sm_70', '--with-multilib-list=sm_70,sm_53,sm_30'
SMOID sm_70
SMOIL sm_70 sm_53 sm_30
AEMM misa?sm_30=misa?sm_35
+AEMM misa?sm_30=misa?sm_37
AEMM .=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
@@ -122,6 +154,7 @@ BEGIN '--with-arch=sm_75', '--with-multilib-list=sm_75,sm_30'
SMOID sm_75
SMOIL sm_75 sm_30
AEMM misa?sm_30=misa?sm_35
+AEMM misa?sm_30=misa?sm_37
AEMM misa?sm_30=misa?sm_53
AEMM misa?sm_30=misa?sm_70
AEMM .=misa?sm_75
@@ -133,6 +166,7 @@ SMOID sm_75
SMOIL sm_75 sm_53
AEMM misa?sm_53=misa?sm_30
AEMM misa?sm_53=misa?sm_35
+AEMM misa?sm_53=misa?sm_37
AEMM misa?sm_53=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
@@ -142,6 +176,7 @@ BEGIN '--with-arch=sm_75', '--with-multilib-list=sm_75,sm_30,sm_53'
SMOID sm_75
SMOIL sm_75 sm_30 sm_53
AEMM misa?sm_30=misa?sm_35
+AEMM misa?sm_30=misa?sm_37
AEMM misa?sm_53=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
@@ -153,6 +188,7 @@ SMOID sm_80
SMOIL sm_80
AEMM .=misa?sm_30
AEMM .=misa?sm_35
+AEMM .=misa?sm_37
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM .=misa?sm_75
@@ -163,6 +199,7 @@ BEGIN '--with-arch=sm_80', '--with-multilib-list=sm_80,sm_30'
SMOID sm_80
SMOIL sm_80 sm_30
AEMM misa?sm_30=misa?sm_35
+AEMM misa?sm_30=misa?sm_37
AEMM misa?sm_30=misa?sm_53
AEMM misa?sm_30=misa?sm_70
AEMM misa?sm_30=misa?sm_75
@@ -174,13 +211,14 @@ SMOID sm_80
SMOIL sm_80 sm_75
AEMM misa?sm_75=misa?sm_30
AEMM misa?sm_75=misa?sm_35
+AEMM misa?sm_75=misa?sm_37
AEMM misa?sm_75=misa?sm_53
AEMM misa?sm_75=misa?sm_70
AEMM .=misa?sm_80
CMMC
-BEGIN '--with-arch=sm_80', '--with-multilib-list=sm_80,sm_30,sm_35,sm_53,sm_70,sm_75'
+BEGIN '--with-arch=sm_80', '--with-multilib-list=sm_80,sm_30,sm_35,sm_37,sm_53,sm_70,sm_75'
SMOID sm_80
-SMOIL sm_80 sm_30 sm_35 sm_53 sm_70 sm_75
+SMOIL sm_80 sm_30 sm_35 sm_37 sm_53 sm_70 sm_75
AEMM .=misa?sm_80
CMMC
@@ -23,6 +23,7 @@
#define TARGET_SM30 (ptx_isa_option >= PTX_ISA_SM30)
#define TARGET_SM35 (ptx_isa_option >= PTX_ISA_SM35)
+#define TARGET_SM37 (ptx_isa_option >= PTX_ISA_SM37)
#define TARGET_SM53 (ptx_isa_option >= PTX_ISA_SM53)
#define TARGET_SM70 (ptx_isa_option >= PTX_ISA_SM70)
#define TARGET_SM75 (ptx_isa_option >= PTX_ISA_SM75)
@@ -29,6 +29,9 @@ Enum(ptx_isa) String(sm_30) Value(PTX_ISA_SM30)
EnumValue
Enum(ptx_isa) String(sm_35) Value(PTX_ISA_SM35)
+EnumValue
+Enum(ptx_isa) String(sm_37) Value(PTX_ISA_SM37)
+
EnumValue
Enum(ptx_isa) String(sm_53) Value(PTX_ISA_SM53)
@@ -22,6 +22,7 @@
NVPTX_SM (30, NVPTX_SM_SEP)
NVPTX_SM (35, NVPTX_SM_SEP)
+NVPTX_SM (37, NVPTX_SM_SEP)
NVPTX_SM (53, NVPTX_SM_SEP)
NVPTX_SM (70, NVPTX_SM_SEP)
NVPTX_SM (75, NVPTX_SM_SEP)
@@ -215,6 +215,8 @@ first_ptx_version_supporting_sm (enum ptx_isa sm)
return /* PTX_VERSION_3_0 not defined */ PTX_VERSION_3_1;
case PTX_ISA_SM35:
return PTX_VERSION_3_1;
+ case PTX_ISA_SM37:
+ return PTX_VERSION_4_1;
case PTX_ISA_SM53:
return PTX_VERSION_4_2;
case PTX_ISA_SM70:
@@ -73,13 +73,13 @@ march-map=sm_35
Target RejectNegative Alias(misa=,sm_35)
march-map=sm_37
-Target RejectNegative Alias(misa=,sm_35)
+Target RejectNegative Alias(misa=,sm_37)
march-map=sm_50
-Target RejectNegative Alias(misa=,sm_35)
+Target RejectNegative Alias(misa=,sm_37)
march-map=sm_52
-Target RejectNegative Alias(misa=,sm_35)
+Target RejectNegative Alias(misa=,sm_37)
march-map=sm_53
Target RejectNegative Alias(misa=,sm_53)
@@ -30046,7 +30046,7 @@ supported.
@item -march=@var{architecture-string}
Generate code for the specified PTX ISA target architecture.
Valid architecture strings are
-@samp{sm_30}, @samp{sm_35},
+@samp{sm_30}, @samp{sm_35}, @samp{sm_37},
@samp{sm_53},
@samp{sm_70}, @samp{sm_75},
and @samp{sm_80}.
@@ -2,7 +2,7 @@
/* { 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 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_37$} 1 } } */
#if __PTX_ISA_VERSION_MAJOR__ != 6
#error wrong value for __PTX_ISA_VERSION_MAJOR__
@@ -12,7 +12,7 @@
#error wrong value for __PTX_ISA_VERSION_MINOR__
#endif
-#if __PTX_SM__ != 350
+#if __PTX_SM__ != 370
#error wrong value for __PTX_SM__
#endif
@@ -2,7 +2,7 @@
/* { 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 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_37$} 1 } } */
#if __PTX_ISA_VERSION_MAJOR__ != 6
#error wrong value for __PTX_ISA_VERSION_MAJOR__
@@ -12,7 +12,7 @@
#error wrong value for __PTX_ISA_VERSION_MINOR__
#endif
-#if __PTX_SM__ != 350
+#if __PTX_SM__ != 370
#error wrong value for __PTX_SM__
#endif
@@ -2,7 +2,7 @@
/* { 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 } } */
+/* { dg-final { scan-assembler-times {(?n)^ \.target sm_37$} 1 } } */
#if __PTX_ISA_VERSION_MAJOR__ != 6
#error wrong value for __PTX_ISA_VERSION_MAJOR__
@@ -12,7 +12,7 @@
#error wrong value for __PTX_ISA_VERSION_MINOR__
#endif
-#if __PTX_SM__ != 350
+#if __PTX_SM__ != 370
#error wrong value for __PTX_SM__
#endif
new file mode 100644
@@ -0,0 +1,19 @@
+/* { dg-do assemble } */
+/* { dg-options {-march=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_37$} 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__ != 370
+#error wrong value for __PTX_SM__
+#endif
+
+int dummy;
new file mode 100644
@@ -0,0 +1,8 @@
+/* { dg-do link { target { offload_target_nvptx } } } */
+/* { dg-additional-options -foffload=nvptx-none } */
+/* { dg-additional-options "-foffload=-misa=sm_37 -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 "= f37 \\(\\);" "optimized" } } */
@@ -14,6 +14,13 @@ f35 (void)
return 35;
}
+__attribute__ ((noipa))
+int
+f37 (void)
+{
+ return 37;
+}
+
__attribute__ ((noipa))
int
f53 (void)
@@ -44,6 +51,7 @@ f80 (void)
#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")})
#pragma omp declare variant (f53) match (device={isa("sm_53")})
#pragma omp declare variant (f70) match (device={isa("sm_70")})
#pragma omp declare variant (f75) match (device={isa("sm_75")})