diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 9c8c351e9d7ce9716c6d8dfcc8378e6af8b501c6..2964cbaeac88dee08545685d3af5e9591a51a491 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -1476,6 +1476,7 @@ public: GK_SM21, GK_SM30, GK_SM35, + GK_SM37, } GPU; public: @@ -1511,6 +1512,9 @@ public: case GK_SM35: CUDAArchCode = "350"; break; + case GK_SM37: + CUDAArchCode = "370"; + break; default: llvm_unreachable("Unhandled target CPU"); } @@ -1563,6 +1567,7 @@ public: .Case("sm_21", GK_SM21) .Case("sm_30", GK_SM30) .Case("sm_35", GK_SM35) + .Case("sm_37", GK_SM37) .Default(GK_NONE); return GPU != GK_NONE; diff --git a/test/CodeGen/nvptx-cpus.c b/test/CodeGen/nvptx-cpus.c index c9c7680d6734eb6d2dd64197852715897d0bcf8b..015f52946ef7333bfc64d70d9f6da57c25c81eca 100644 --- a/test/CodeGen/nvptx-cpus.c +++ b/test/CodeGen/nvptx-cpus.c @@ -2,6 +2,7 @@ // RUN: %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_21 -O3 -S -o %t %s -emit-llvm // RUN: %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_30 -O3 -S -o %t %s -emit-llvm // RUN: %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_35 -O3 -S -o %t %s -emit-llvm +// RUN: %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_37 -O3 -S -o %t %s -emit-llvm // Make sure clang accepts all supported architectures.