Skip to content

Commit caca3a9

Browse files
committed
nvptx: Support '-march=sm_61'
gcc/ * config/nvptx/nvptx-sm.def: Add '61'. * 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_61, -march-map=sm_62): Likewise. * config.gcc: Likewise. * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_61'. * config/nvptx/gen-multilib-matches-tests: Extend. gcc/testsuite/ * gcc.target/nvptx/march-map=sm_61.c: Adjust. * gcc.target/nvptx/march-map=sm_62.c: Likewise. * gcc.target/nvptx/march=sm_61.c: New. libgomp/ * testsuite/libgomp.c/declare-variant-3-sm61.c: New. * testsuite/libgomp.c/declare-variant-3.h: Adjust. (cherry picked from commit 7b53b88)
1 parent 2b105cb commit caca3a9

File tree

13 files changed

+111
-12
lines changed

13 files changed

+111
-12
lines changed

gcc/config.gcc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5641,6 +5641,7 @@ case "${target}" in
56415641
#TODO 'sm_[...]' list per 'nvptx-sm.def'.
56425642
sm_30 | sm_35 | sm_37 \
56435643
| sm_52 | sm_53 \
5644+
| sm_61 \
56445645
| sm_70 | sm_75 \
56455646
| sm_80 | sm_89 )
56465647
TM_MULTILIB_CONFIG="$TM_MULTILIB_CONFIG $nvptx_multilib"

gcc/config/nvptx/gen-multilib-matches-tests

Lines changed: 61 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ AEMM .=misa?sm_35
1818
AEMM .=misa?sm_37
1919
AEMM .=misa?sm_52
2020
AEMM .=misa?sm_53
21+
AEMM .=misa?sm_61
2122
AEMM .=misa?sm_70
2223
AEMM .=misa?sm_75
2324
AEMM .=misa?sm_80
@@ -32,14 +33,15 @@ AEMM .=misa?sm_35
3233
AEMM .=misa?sm_37
3334
AEMM .=misa?sm_52
3435
AEMM .=misa?sm_53
36+
AEMM .=misa?sm_61
3537
AEMM .=misa?sm_70
3638
AEMM .=misa?sm_75
3739
AEMM .=misa?sm_80
3840
CMMC
3941

40-
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'
42+
BEGIN '--with-arch=sm_30', '--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_53,sm_61,sm_70,sm_75,sm_80,sm_89'
4143
SMOID sm_30
42-
SMOIL sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75 sm_80 sm_89
44+
SMOIL sm_30 sm_35 sm_37 sm_52 sm_53 sm_61 sm_70 sm_75 sm_80 sm_89
4345
AEMM .=misa?sm_30
4446
CMMC
4547

@@ -52,6 +54,7 @@ AEMM .=misa?sm_35
5254
AEMM .=misa?sm_37
5355
AEMM .=misa?sm_52
5456
AEMM .=misa?sm_53
57+
AEMM .=misa?sm_61
5558
AEMM .=misa?sm_70
5659
AEMM .=misa?sm_75
5760
AEMM .=misa?sm_80
@@ -65,6 +68,7 @@ AEMM .=misa?sm_35
6568
AEMM .=misa?sm_37
6669
AEMM .=misa?sm_52
6770
AEMM .=misa?sm_53
71+
AEMM .=misa?sm_61
6872
AEMM .=misa?sm_70
6973
AEMM .=misa?sm_75
7074
AEMM .=misa?sm_80
@@ -79,6 +83,7 @@ AEMM misa?sm_30=misa?sm_35
7983
AEMM .=misa?sm_37
8084
AEMM .=misa?sm_52
8185
AEMM .=misa?sm_53
86+
AEMM .=misa?sm_61
8287
AEMM .=misa?sm_70
8388
AEMM .=misa?sm_75
8489
AEMM .=misa?sm_80
@@ -93,6 +98,7 @@ AEMM misa?sm_35=misa?sm_30
9398
AEMM misa?sm_35=misa?sm_37
9499
AEMM .=misa?sm_52
95100
AEMM .=misa?sm_53
101+
AEMM .=misa?sm_61
96102
AEMM .=misa?sm_70
97103
AEMM misa?sm_75=misa?sm_80
98104
AEMM misa?sm_75=misa?sm_89
@@ -106,6 +112,7 @@ AEMM misa?sm_30=misa?sm_35
106112
AEMM misa?sm_30=misa?sm_37
107113
AEMM misa?sm_30=misa?sm_52
108114
AEMM .=misa?sm_53
115+
AEMM .=misa?sm_61
109116
AEMM .=misa?sm_70
110117
AEMM .=misa?sm_75
111118
AEMM .=misa?sm_80
@@ -119,19 +126,55 @@ AEMM misa?sm_37=misa?sm_30
119126
AEMM misa?sm_37=misa?sm_35
120127
AEMM misa?sm_37=misa?sm_52
121128
AEMM .=misa?sm_53
129+
AEMM .=misa?sm_61
122130
AEMM .=misa?sm_70
123131
AEMM .=misa?sm_75
124132
AEMM .=misa?sm_80
125133
AEMM .=misa?sm_89
126134
CMMC
127135

128-
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'
136+
BEGIN '--with-arch=sm_53', '--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_61,sm_70,sm_75,sm_80,sm_89'
129137
SMOID sm_53
130-
SMOIL sm_53 sm_30 sm_35 sm_37 sm_52 sm_70 sm_75 sm_80 sm_89
138+
SMOIL sm_53 sm_30 sm_35 sm_37 sm_52 sm_61 sm_70 sm_75 sm_80 sm_89
131139
AEMM .=misa?sm_53
132140
CMMC
133141

134142

143+
BEGIN '--with-arch=sm_61', '--with-multilib-list=sm_61,sm_30'
144+
SMOID sm_61
145+
SMOIL sm_61 sm_30
146+
AEMM misa?sm_30=misa?sm_35
147+
AEMM misa?sm_30=misa?sm_37
148+
AEMM misa?sm_30=misa?sm_52
149+
AEMM misa?sm_30=misa?sm_53
150+
AEMM .=misa?sm_61
151+
AEMM .=misa?sm_70
152+
AEMM .=misa?sm_75
153+
AEMM .=misa?sm_80
154+
AEMM .=misa?sm_89
155+
CMMC
156+
157+
BEGIN '--with-arch=sm_61', '--with-multilib-list=sm_61,sm_37'
158+
SMOID sm_61
159+
SMOIL sm_61 sm_37
160+
AEMM misa?sm_37=misa?sm_30
161+
AEMM misa?sm_37=misa?sm_35
162+
AEMM misa?sm_37=misa?sm_52
163+
AEMM misa?sm_37=misa?sm_53
164+
AEMM .=misa?sm_61
165+
AEMM .=misa?sm_70
166+
AEMM .=misa?sm_75
167+
AEMM .=misa?sm_80
168+
AEMM .=misa?sm_89
169+
CMMC
170+
171+
BEGIN '--with-arch=sm_61', '--with-multilib-list=sm_30,sm_35,sm_37,sm_52,sm_61,sm_70,sm_75,sm_80,sm_89'
172+
SMOID sm_61
173+
SMOIL sm_61 sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75 sm_80 sm_89
174+
AEMM .=misa?sm_61
175+
CMMC
176+
177+
135178
BEGIN '--with-arch=sm_70', '--with-multilib-list=sm_70'
136179
SMOID sm_70
137180
SMOIL sm_70
@@ -140,6 +183,7 @@ AEMM .=misa?sm_35
140183
AEMM .=misa?sm_37
141184
AEMM .=misa?sm_52
142185
AEMM .=misa?sm_53
186+
AEMM .=misa?sm_61
143187
AEMM .=misa?sm_70
144188
AEMM .=misa?sm_75
145189
AEMM .=misa?sm_80
@@ -153,6 +197,7 @@ AEMM misa?sm_30=misa?sm_35
153197
AEMM misa?sm_30=misa?sm_37
154198
AEMM misa?sm_30=misa?sm_52
155199
AEMM misa?sm_30=misa?sm_53
200+
AEMM misa?sm_30=misa?sm_61
156201
AEMM .=misa?sm_70
157202
AEMM .=misa?sm_75
158203
AEMM .=misa?sm_80
@@ -166,6 +211,7 @@ AEMM misa?sm_53=misa?sm_30
166211
AEMM misa?sm_53=misa?sm_35
167212
AEMM misa?sm_53=misa?sm_37
168213
AEMM misa?sm_53=misa?sm_52
214+
AEMM misa?sm_53=misa?sm_61
169215
AEMM .=misa?sm_70
170216
AEMM .=misa?sm_75
171217
AEMM .=misa?sm_80
@@ -178,6 +224,7 @@ SMOIL sm_70 sm_53 sm_30
178224
AEMM misa?sm_30=misa?sm_35
179225
AEMM misa?sm_30=misa?sm_37
180226
AEMM misa?sm_30=misa?sm_52
227+
AEMM misa?sm_53=misa?sm_61
181228
AEMM .=misa?sm_70
182229
AEMM .=misa?sm_75
183230
AEMM .=misa?sm_80
@@ -192,6 +239,7 @@ AEMM misa?sm_30=misa?sm_35
192239
AEMM misa?sm_30=misa?sm_37
193240
AEMM misa?sm_30=misa?sm_52
194241
AEMM misa?sm_30=misa?sm_53
242+
AEMM misa?sm_30=misa?sm_61
195243
AEMM misa?sm_30=misa?sm_70
196244
AEMM .=misa?sm_75
197245
AEMM .=misa?sm_80
@@ -205,6 +253,7 @@ AEMM misa?sm_53=misa?sm_30
205253
AEMM misa?sm_53=misa?sm_35
206254
AEMM misa?sm_53=misa?sm_37
207255
AEMM misa?sm_53=misa?sm_52
256+
AEMM misa?sm_53=misa?sm_61
208257
AEMM misa?sm_53=misa?sm_70
209258
AEMM .=misa?sm_75
210259
AEMM .=misa?sm_80
@@ -217,6 +266,7 @@ SMOIL sm_75 sm_30 sm_53
217266
AEMM misa?sm_30=misa?sm_35
218267
AEMM misa?sm_30=misa?sm_37
219268
AEMM misa?sm_30=misa?sm_52
269+
AEMM misa?sm_53=misa?sm_61
220270
AEMM misa?sm_53=misa?sm_70
221271
AEMM .=misa?sm_75
222272
AEMM .=misa?sm_80
@@ -232,6 +282,7 @@ AEMM .=misa?sm_35
232282
AEMM .=misa?sm_37
233283
AEMM .=misa?sm_52
234284
AEMM .=misa?sm_53
285+
AEMM .=misa?sm_61
235286
AEMM .=misa?sm_70
236287
AEMM .=misa?sm_75
237288
AEMM .=misa?sm_80
@@ -245,6 +296,7 @@ AEMM misa?sm_30=misa?sm_35
245296
AEMM misa?sm_30=misa?sm_37
246297
AEMM misa?sm_30=misa?sm_52
247298
AEMM misa?sm_30=misa?sm_53
299+
AEMM misa?sm_30=misa?sm_61
248300
AEMM misa?sm_30=misa?sm_70
249301
AEMM misa?sm_30=misa?sm_75
250302
AEMM .=misa?sm_80
@@ -259,6 +311,7 @@ AEMM misa?sm_75=misa?sm_35
259311
AEMM misa?sm_75=misa?sm_37
260312
AEMM misa?sm_75=misa?sm_52
261313
AEMM misa?sm_75=misa?sm_53
314+
AEMM misa?sm_75=misa?sm_61
262315
AEMM misa?sm_75=misa?sm_70
263316
AEMM .=misa?sm_80
264317
AEMM .=misa?sm_89
@@ -273,6 +326,7 @@ AEMM .=misa?sm_35
273326
AEMM .=misa?sm_37
274327
AEMM .=misa?sm_52
275328
AEMM .=misa?sm_53
329+
AEMM .=misa?sm_61
276330
AEMM .=misa?sm_70
277331
AEMM .=misa?sm_75
278332
AEMM .=misa?sm_80
@@ -286,15 +340,16 @@ AEMM misa?sm_52=misa?sm_30
286340
AEMM misa?sm_52=misa?sm_35
287341
AEMM misa?sm_52=misa?sm_37
288342
AEMM misa?sm_52=misa?sm_53
343+
AEMM misa?sm_52=misa?sm_61
289344
AEMM misa?sm_52=misa?sm_70
290345
AEMM misa?sm_52=misa?sm_75
291346
AEMM misa?sm_52=misa?sm_80
292347
AEMM .=misa?sm_89
293348
CMMC
294349

295350

296-
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'
351+
BEGIN '--with-arch=sm_89', '--with-multilib-list=sm_89,sm_30,sm_35,sm_37,sm_52,sm_53,sm_61,sm_70,sm_75,sm_80'
297352
SMOID sm_89
298-
SMOIL sm_89 sm_30 sm_35 sm_37 sm_52 sm_53 sm_70 sm_75 sm_80
353+
SMOIL sm_89 sm_30 sm_35 sm_37 sm_52 sm_53 sm_61 sm_70 sm_75 sm_80
299354
AEMM .=misa?sm_89
300355
CMMC

gcc/config/nvptx/nvptx-gen.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#define TARGET_SM37 (ptx_isa_option >= PTX_ISA_SM37)
2727
#define TARGET_SM52 (ptx_isa_option >= PTX_ISA_SM52)
2828
#define TARGET_SM53 (ptx_isa_option >= PTX_ISA_SM53)
29+
#define TARGET_SM61 (ptx_isa_option >= PTX_ISA_SM61)
2930
#define TARGET_SM70 (ptx_isa_option >= PTX_ISA_SM70)
3031
#define TARGET_SM75 (ptx_isa_option >= PTX_ISA_SM75)
3132
#define TARGET_SM80 (ptx_isa_option >= PTX_ISA_SM80)

gcc/config/nvptx/nvptx-gen.opt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ Enum(ptx_isa) String(sm_52) Value(PTX_ISA_SM52)
3838
EnumValue
3939
Enum(ptx_isa) String(sm_53) Value(PTX_ISA_SM53)
4040

41+
EnumValue
42+
Enum(ptx_isa) String(sm_61) Value(PTX_ISA_SM61)
43+
4144
EnumValue
4245
Enum(ptx_isa) String(sm_70) Value(PTX_ISA_SM70)
4346

gcc/config/nvptx/nvptx-sm.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ NVPTX_SM (35, NVPTX_SM_SEP)
2525
NVPTX_SM (37, NVPTX_SM_SEP)
2626
NVPTX_SM (52, NVPTX_SM_SEP)
2727
NVPTX_SM (53, NVPTX_SM_SEP)
28+
NVPTX_SM (61, NVPTX_SM_SEP)
2829
NVPTX_SM (70, NVPTX_SM_SEP)
2930
NVPTX_SM (75, NVPTX_SM_SEP)
3031
NVPTX_SM (80, NVPTX_SM_SEP)

gcc/config/nvptx/nvptx.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ first_ptx_version_supporting_sm (enum ptx_isa sm)
220220
return PTX_VERSION_4_1;
221221
case PTX_ISA_SM53:
222222
return PTX_VERSION_4_2;
223+
case PTX_ISA_SM61:
224+
return PTX_VERSION_5_0;
223225
case PTX_ISA_SM70:
224226
return PTX_VERSION_6_0;
225227
case PTX_ISA_SM75:

gcc/config/nvptx/nvptx.opt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ march-map=sm_60
8888
Target RejectNegative Alias(misa=,sm_53)
8989

9090
march-map=sm_61
91-
Target RejectNegative Alias(misa=,sm_53)
91+
Target RejectNegative Alias(misa=,sm_61)
9292

9393
march-map=sm_62
94-
Target RejectNegative Alias(misa=,sm_53)
94+
Target RejectNegative Alias(misa=,sm_61)
9595

9696
march-map=sm_70
9797
Target RejectNegative Alias(misa=,sm_70)

gcc/doc/invoke.texi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30659,6 +30659,7 @@ Generate code for the specified PTX ISA target architecture.
3065930659
Valid architecture strings are
3066030660
@samp{sm_30}, @samp{sm_35}, @samp{sm_37},
3066130661
@samp{sm_52}, @samp{sm_53},
30662+
@samp{sm_61},
3066230663
@samp{sm_70}, @samp{sm_75},
3066330664
@samp{sm_80}, and @samp{sm_89}.
3066430665
The default depends on how the compiler has been configured, see

gcc/testsuite/gcc.target/nvptx/march-map=sm_61.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/* { dg-options {-march-map=sm_61 -mptx=_} } */
33
/* { dg-additional-options -save-temps } */
44
/* { dg-final { scan-assembler-times {(?n)^ \.version 7\.3$} 1 } } */
5-
/* { dg-final { scan-assembler-times {(?n)^ \.target sm_53$} 1 } } */
5+
/* { dg-final { scan-assembler-times {(?n)^ \.target sm_61$} 1 } } */
66

77
#if __PTX_ISA_VERSION_MAJOR__ != 7
88
#error wrong value for __PTX_ISA_VERSION_MAJOR__
@@ -12,7 +12,7 @@
1212
#error wrong value for __PTX_ISA_VERSION_MINOR__
1313
#endif
1414

15-
#if __PTX_SM__ != 530
15+
#if __PTX_SM__ != 610
1616
#error wrong value for __PTX_SM__
1717
#endif
1818

gcc/testsuite/gcc.target/nvptx/march-map=sm_62.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/* { dg-options {-march-map=sm_62 -mptx=_} } */
33
/* { dg-additional-options -save-temps } */
44
/* { dg-final { scan-assembler-times {(?n)^ \.version 7\.3$} 1 } } */
5-
/* { dg-final { scan-assembler-times {(?n)^ \.target sm_53$} 1 } } */
5+
/* { dg-final { scan-assembler-times {(?n)^ \.target sm_61$} 1 } } */
66

77
#if __PTX_ISA_VERSION_MAJOR__ != 7
88
#error wrong value for __PTX_ISA_VERSION_MAJOR__
@@ -12,7 +12,7 @@
1212
#error wrong value for __PTX_ISA_VERSION_MINOR__
1313
#endif
1414

15-
#if __PTX_SM__ != 530
15+
#if __PTX_SM__ != 610
1616
#error wrong value for __PTX_SM__
1717
#endif
1818

0 commit comments

Comments
 (0)