[clang] 9c39663 - Only Remove implicit conversion for the target that support fp16
Jim Lin via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 10 03:11:01 PST 2019
Author: Jim Lin
Date: 2019-12-10T19:15:11+08:00
New Revision: 9c3966379813c198129c57aa3ebecd68d6af1ebd
URL: https://github.com/llvm/llvm-project/commit/9c3966379813c198129c57aa3ebecd68d6af1ebd
DIFF: https://github.com/llvm/llvm-project/commit/9c3966379813c198129c57aa3ebecd68d6af1ebd.diff
LOG: Only Remove implicit conversion for the target that support fp16
Remove implicit conversion that promotes half to double
for the target that support fp16. If the target doesn't
support fp16, fp16 will be converted to fp16 intrinsic.
Added:
Modified:
clang/lib/Sema/SemaChecking.cpp
Removed:
################################################################################
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 2be9effffcec..aff63aef2934 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -5822,7 +5822,8 @@ bool Sema::SemaBuiltinFPClassification(CallExpr *TheCall, unsigned NumArgs) {
"promotion from float to either float, double, or long double is "
"the only expected cast here");
IgnoreCast = true;
- } else if (CastArg->getType()->isSpecificBuiltinType(BuiltinType::Half)) {
+ } else if (CastArg->getType()->isSpecificBuiltinType(BuiltinType::Half) &&
+ !Context.getTargetInfo().useFP16ConversionIntrinsics()) {
assert(
(Cast->getType()->isSpecificBuiltinType(BuiltinType::Double) ||
Cast->getType()->isSpecificBuiltinType(BuiltinType::Float) ||
More information about the cfe-commits
mailing list