From 0d3f939ba7956c3583a7488cc9a0a85f96556ff6 Mon Sep 17 00:00:00 2001 From: dim <dim@FreeBSD.org> Date: Sat, 15 Sep 2012 17:02:05 +0000 Subject: Pull in r163967 from upstream llvm trunk: X86: Emitting x87 fsin/fcos for sinf/cosf is not safe without unsafe fp math. This should make clang emit calls to libm for sinf/cosf by default. MFC after: 1 week --- contrib/llvm/lib/Target/X86/X86ISelLowering.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp b/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp index c77355f..4af12e4 100644 --- a/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -643,7 +643,9 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM) setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand); if (!TM.Options.UnsafeFPMath) { + setOperationAction(ISD::FSIN , MVT::f32 , Expand); setOperationAction(ISD::FSIN , MVT::f64 , Expand); + setOperationAction(ISD::FCOS , MVT::f32 , Expand); setOperationAction(ISD::FCOS , MVT::f64 , Expand); } addLegalFPImmediate(APFloat(+0.0)); // FLD0 -- cgit v1.1