diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2018-01-17 22:29:16 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2018-01-17 22:29:16 +0000 |
commit | 8b1986b5cb2c4282aab50794e05be412fbc421d1 (patch) | |
tree | a1f0f483fe7550b27624c8d935d071e1cee1766a /llvm/lib/CodeGen/TargetLoweringBase.cpp | |
parent | e5b8de2f1f4b785fe4105c74aa055e9319ebd9ac (diff) | |
download | llvm-8b1986b5cb2c4282aab50794e05be412fbc421d1.zip llvm-8b1986b5cb2c4282aab50794e05be412fbc421d1.tar.gz llvm-8b1986b5cb2c4282aab50794e05be412fbc421d1.tar.bz2 |
Add support for emitting libcalls for x86_fp80 -> fp128 and vice-versa
compiler_rt doesn't provide them (yet), but libgcc does. PR34076.
llvm-svn: 322772
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringBase.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TargetLoweringBase.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringBase.cpp b/llvm/lib/CodeGen/TargetLoweringBase.cpp index b29a33a..4dcb705 100644 --- a/llvm/lib/CodeGen/TargetLoweringBase.cpp +++ b/llvm/lib/CodeGen/TargetLoweringBase.cpp @@ -192,6 +192,9 @@ RTLIB::Libcall RTLIB::getFPEXT(EVT OpVT, EVT RetVT) { return FPEXT_F64_F128; else if (RetVT == MVT::ppcf128) return FPEXT_F64_PPCF128; + } else if (OpVT == MVT::f80) { + if (RetVT == MVT::f128) + return FPEXT_F80_F128; } return UNKNOWN_LIBCALL; @@ -227,6 +230,9 @@ RTLIB::Libcall RTLIB::getFPROUND(EVT OpVT, EVT RetVT) { return FPROUND_F128_F64; if (OpVT == MVT::ppcf128) return FPROUND_PPCF128_F64; + } else if (RetVT == MVT::f80) { + if (OpVT == MVT::f128) + return FPROUND_F128_F80; } return UNKNOWN_LIBCALL; |