aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Builtins.cpp
diff options
context:
space:
mode:
authorJan Vesely <jan.vesely@rutgers.edu>2017-09-07 19:39:10 +0000
committerJan Vesely <jan.vesely@rutgers.edu>2017-09-07 19:39:10 +0000
commit31ecb4bf602f26866a4e29dcaeab3fbb8b742a36 (patch)
tree1193772d264ea18468335d6c1481427daad3870f /clang/lib/Basic/Builtins.cpp
parent8ad3aab4e52afd611433c04f44b8e4960fc4bb01 (diff)
downloadllvm-31ecb4bf602f26866a4e29dcaeab3fbb8b742a36.zip
llvm-31ecb4bf602f26866a4e29dcaeab3fbb8b742a36.tar.gz
llvm-31ecb4bf602f26866a4e29dcaeab3fbb8b742a36.tar.bz2
[OpenCL] Add half load and store builtins
This enables load/stores of half type, without half being a legal type. Differential Revision: https://reviews.llvm.org/D37231 llvm-svn: 312742
Diffstat (limited to 'clang/lib/Basic/Builtins.cpp')
-rw-r--r--clang/lib/Basic/Builtins.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp
index 28695d6..2f0cba4 100644
--- a/clang/lib/Basic/Builtins.cpp
+++ b/clang/lib/Basic/Builtins.cpp
@@ -69,9 +69,14 @@ bool Builtin::Context::builtinIsSupported(const Builtin::Info &BuiltinInfo,
bool MSModeUnsupported =
!LangOpts.MicrosoftExt && (BuiltinInfo.Langs & MS_LANG);
bool ObjCUnsupported = !LangOpts.ObjC1 && BuiltinInfo.Langs == OBJC_LANG;
- bool OclCUnsupported = LangOpts.OpenCLVersion != 200 &&
- BuiltinInfo.Langs == OCLC20_LANG;
+ bool OclC1Unsupported = (LangOpts.OpenCLVersion / 100) != 1 &&
+ (BuiltinInfo.Langs & ALL_OCLC_LANGUAGES ) == OCLC1X_LANG;
+ bool OclC2Unsupported = LangOpts.OpenCLVersion != 200 &&
+ (BuiltinInfo.Langs & ALL_OCLC_LANGUAGES) == OCLC20_LANG;
+ bool OclCUnsupported = !LangOpts.OpenCL &&
+ (BuiltinInfo.Langs & ALL_OCLC_LANGUAGES);
return !BuiltinsUnsupported && !MathBuiltinsUnsupported && !OclCUnsupported &&
+ !OclC1Unsupported && !OclC2Unsupported &&
!GnuModeUnsupported && !MSModeUnsupported && !ObjCUnsupported;
}