mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:50:30 +00:00
[CodeGen][X86] Fuchsia supports sincos* libcalls and sin+cos->sincos optimization
Patch by Roland McGrath Differential Revision: https://reviews.llvm.org/D35748 llvm-svn: 308854
This commit is contained in:
parent
dc692f129b
commit
f1d4340234
@ -97,7 +97,7 @@ static void InitLibcallNames(const char **Names, const Triple &TT) {
|
||||
Names[RTLIB::FPROUND_F32_F16] = "__gnu_f2h_ieee";
|
||||
}
|
||||
|
||||
if (TT.isGNUEnvironment()) {
|
||||
if (TT.isGNUEnvironment() || TT.isOSFuchsia()) {
|
||||
Names[RTLIB::SINCOS_F32] = "sincosf";
|
||||
Names[RTLIB::SINCOS_F64] = "sincos";
|
||||
Names[RTLIB::SINCOS_F80] = "sincosl";
|
||||
|
@ -189,9 +189,12 @@ const char *X86Subtarget::getBZeroEntry() const {
|
||||
}
|
||||
|
||||
bool X86Subtarget::hasSinCos() const {
|
||||
return getTargetTriple().isMacOSX() &&
|
||||
!getTargetTriple().isMacOSXVersionLT(10, 9) &&
|
||||
is64Bit();
|
||||
if (getTargetTriple().isMacOSX()) {
|
||||
return !getTargetTriple().isMacOSXVersionLT(10, 9) && is64Bit();
|
||||
} else if (getTargetTriple().isOSFuchsia()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// Return true if the subtarget allows calls to immediate address.
|
||||
|
@ -3,6 +3,8 @@
|
||||
; RUN: llc < %s -mtriple=x86_64-pc-linux-gnu -mcpu=core2 | FileCheck %s --check-prefix=GNU_SINCOS
|
||||
; RUN: llc < %s -mtriple=x86_64-pc-linux-gnu -mcpu=core2 -enable-unsafe-fp-math | FileCheck %s --check-prefix=GNU_SINCOS_FASTMATH
|
||||
; RUN: llc < %s -mtriple=x86_64-pc-linux-gnux32 -mcpu=core2 -enable-unsafe-fp-math | FileCheck %s --check-prefix=GNU_SINCOS_FASTMATH
|
||||
; RUN: llc < %s -mtriple=x86_64-fuchsia -mcpu=core2 | FileCheck %s --check-prefix=GNU_SINCOS
|
||||
; RUN: llc < %s -mtriple=x86_64-fuchsia -mcpu=core2 -enable-unsafe-fp-math | FileCheck %s --check-prefix=GNU_SINCOS_FASTMATH
|
||||
|
||||
; Combine sin / cos into a single call unless they may write errno (as
|
||||
; captured by readnone attrbiute, controlled by clang -fmath-errno
|
||||
|
Loading…
Reference in New Issue
Block a user