Skip to content

Commit af2bf2f

Browse files
author
Sebastian Jodlowski
committed
Add support for sm120 as well.
1 parent a55c76b commit af2bf2f

File tree

6 files changed

+21
-2
lines changed

6 files changed

+21
-2
lines changed

clang/include/clang/Basic/BuiltinsNVPTX.td

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,17 @@ class SM<string version, list<SMFeatures> newer_list> : SMFeatures {
2121
!strconcat(f, "|", newer.Features));
2222
}
2323

24+
let Features = "sm_120a" in def SM_120a : SMFeatures;
25+
26+
def SM_120 : SM<"120", [SM_120a]>;
27+
2428
let Features = "sm_101a" in def SM_101a : SMFeatures;
2529

26-
def SM_101 : SM<"101", [SM_101a]>;
30+
def SM_101 : SM<"101", [SM_101a, SM_120]>;
2731

2832
let Features = "sm_100a" in def SM_100a : SMFeatures;
2933

30-
def SM_100 : SM<"100", [SM_100a]>;
34+
def SM_100 : SM<"100", [SM_100a, SM_101]>;
3135

3236
let Features = "sm_90a" in def SM_90a : SMFeatures;
3337

clang/include/clang/Basic/Cuda.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ enum class OffloadArch {
8484
SM_100a,
8585
SM_101,
8686
SM_101a,
87+
SM_120,
88+
SM_120a,
8789
GFX600,
8890
GFX601,
8991
GFX602,

clang/lib/Basic/Cuda.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ static const OffloadArchToStringMap arch_names[] = {
102102
SM(100a), // Blackwell
103103
SM(101), // Blackwell
104104
SM(101a), // Blackwell
105+
SM(120), // Blackwell
106+
SM(120a), // Blackwell
105107
GFX(600), // gfx600
106108
GFX(601), // gfx601
107109
GFX(602), // gfx602
@@ -234,6 +236,8 @@ CudaVersion MinVersionForOffloadArch(OffloadArch A) {
234236
case OffloadArch::SM_100a:
235237
case OffloadArch::SM_101:
236238
case OffloadArch::SM_101a:
239+
case OffloadArch::SM_120:
240+
case OffloadArch::SM_120a:
237241
return CudaVersion::CUDA_128;
238242
default:
239243
llvm_unreachable("invalid enum");

clang/lib/Basic/Targets/NVPTX.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,9 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts,
295295
case OffloadArch::SM_101:
296296
case OffloadArch::SM_101a:
297297
return "1010";
298+
case OffloadArch::SM_120:
299+
case OffloadArch::SM_120a:
300+
return "1200";
298301
}
299302
llvm_unreachable("unhandled OffloadArch");
300303
}();
@@ -305,6 +308,8 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts,
305308
Builder.defineMacro("__CUDA_ARCH_FEAT_SM100_ALL", "1");
306309
if (GPU == OffloadArch::SM_101a)
307310
Builder.defineMacro("__CUDA_ARCH_FEAT_SM101_ALL", "1");
311+
if (GPU == OffloadArch::SM_120a)
312+
Builder.defineMacro("__CUDA_ARCH_FEAT_SM120_ALL", "1");
308313
}
309314
}
310315

clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2280,6 +2280,8 @@ void CGOpenMPRuntimeGPU::processRequiresDirective(const OMPRequiresDecl *D) {
22802280
case OffloadArch::SM_100a:
22812281
case OffloadArch::SM_101:
22822282
case OffloadArch::SM_101a:
2283+
case OffloadArch::SM_120:
2284+
case OffloadArch::SM_120a:
22832285
case OffloadArch::GFX600:
22842286
case OffloadArch::GFX601:
22852287
case OffloadArch::GFX602:

clang/test/Misc/target-invalid-cpu-note/nvptx.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
// CHECK-SAME: {{^}}, sm_100a
3131
// CHECK-SAME: {{^}}, sm_101
3232
// CHECK-SAME: {{^}}, sm_101a
33+
// CHECK-SAME: {{^}}, sm_120
34+
// CHECK-SAME: {{^}}, sm_120a
3335
// CHECK-SAME: {{^}}, gfx600
3436
// CHECK-SAME: {{^}}, gfx601
3537
// CHECK-SAME: {{^}}, gfx602

0 commit comments

Comments
 (0)