summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Holewinski <jholewinski@nvidia.com>2013-03-30 14:38:26 +0000
committerJustin Holewinski <jholewinski@nvidia.com>2013-03-30 14:38:26 +0000
commit91203e84684406d2857d1a64174271ed41bd74ed (patch)
tree08b1fbc2794fae56eac84caf24c409d46a97f598
parent368374308d6eae9caa6cbfbc9ed0932f9d08a286 (diff)
downloadbcm5719-llvm-91203e84684406d2857d1a64174271ed41bd74ed.tar.gz
bcm5719-llvm-91203e84684406d2857d1a64174271ed41bd74ed.zip
Remove old NVPTX cpus and add new NVPTX cpus
llvm-svn: 178419
-rw-r--r--clang/lib/Basic/Targets.cpp9
-rw-r--r--clang/test/CodeGen/nvptx-cpus.c11
2 files changed, 19 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index a17b2a8256f..54edcbaf681 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -1302,7 +1302,14 @@ namespace {
return TargetInfo::CharPtrBuiltinVaList;
}
virtual bool setCPU(const std::string &Name) {
- return Name == "sm_10" || Name == "sm_13" || Name == "sm_20";
+ bool Valid = llvm::StringSwitch<bool>(Name)
+ .Case("sm_20", true)
+ .Case("sm_21", true)
+ .Case("sm_30", true)
+ .Case("sm_35", true)
+ .Default(false);
+
+ return Valid;
}
virtual bool setFeatureEnabled(llvm::StringMap<bool> &Features,
StringRef Name,
diff --git a/clang/test/CodeGen/nvptx-cpus.c b/clang/test/CodeGen/nvptx-cpus.c
new file mode 100644
index 00000000000..c9c7680d673
--- /dev/null
+++ b/clang/test/CodeGen/nvptx-cpus.c
@@ -0,0 +1,11 @@
+// RUN: %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_20 -O3 -S -o %t %s -emit-llvm
+// 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
+
+// Make sure clang accepts all supported architectures.
+
+void foo(float* a,
+ float* b) {
+ a[0] = b[0];
+}
OpenPOWER on IntegriCloud