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 )
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
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
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'
AEMM .=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
+AEMM .=misa?sm_89
CMMC
AEMM .=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
+AEMM .=misa?sm_89
CMMC
AEMM .=misa?sm_53
AEMM .=misa?sm_70
AEMM misa?sm_75=misa?sm_80
+AEMM misa?sm_75=misa?sm_89
CMMC
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'
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
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'
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'
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'
AEMM .=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
+AEMM .=misa?sm_89
CMMC
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'
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'
AEMM misa?sm_53=misa?sm_70
AEMM .=misa?sm_75
AEMM .=misa?sm_80
+AEMM .=misa?sm_89
CMMC
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'
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'
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
#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)
EnumValue
Enum(ptx_isa) String(sm_80) Value(PTX_ISA_SM80)
+
+EnumValue
+Enum(ptx_isa) String(sm_89) Value(PTX_ISA_SM89)
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
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 ();
}
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)
@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}.
/* { 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
/* { 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
/* { 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
--- /dev/null
+/* { 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;
--- /dev/null
+/* { 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" } } */
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")})
#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)