double tan_14s(double x) {
  static const double c1 = -34287.4662577359568109624;
  static const double c2 = 2566.7175462315050423295;
  static const double c3 = -26.5366371951731325438;
  static const double c4 = -43656.1579281292375769579;
  static const double c5 = 12244.4839556747426927793;
  static const double c6 = -336.611376245464339493;
  double x2;
  x2 = x * x;
  return (x * (c1 + x2 * (c2 + x2 * c3)) / (c4 + x2 * (c5 + x2 * (c6 + x2))));
}


x86 assembly (clang, -O0):
<tan_14s>:
push   %rbp
mov    %rsp,%rbp
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0xef1(%rip),%xmm3
mulsd  %xmm3,%xmm2
movsd  0xeed(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
movsd  0xecd(%rip),%xmm2
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0xeab(%rip),%xmm3
addsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm2
movsd  0xe92(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
movsd  0xe7a(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<tan_14s>:
movapd %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movsd  0xef0(%rip),%xmm2
mulsd  %xmm1,%xmm2
addsd  0xeec(%rip),%xmm2
mulsd  %xmm1,%xmm2
addsd  0xee8(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  0xee4(%rip),%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm1,%xmm2
addsd  0xedc(%rip),%xmm2
mulsd  %xmm1,%xmm2
addsd  0xed8(%rip),%xmm2
divsd  %xmm2,%xmm0
ret

LLVM IR (-O0):
@tan_14s.c1 = internal constant double 0xC0E0BDEEEB9557EE
@tan_14s.c2 = internal constant double 0x40A40D6F62383B5D
@tan_14s.c3 = internal constant double 0xC03A89610E2315F5
@tan_14s.c4 = internal constant double 0xC0E551050DBF4AC6
@tan_14s.c5 = internal constant double 0x40C7EA3DF24271DE
@tan_14s.c6 = internal constant double 0xC07509C832753D21
define double @tan_14s(double %0) {
%2 = alloca double
%3 = alloca double
store double %0, double* %2
%4 = load double, double* %2
%5 = load double, double* %2
%6 = fmul double %4, %5
store double %6, double* %3
%7 = load double, double* %2
%8 = load double, double* %3
%9 = load double, double* %3
%10 = call double @llvm.fmuladd.f64(double %9, double 0xC03A89610E2315F5, double 0x40A40D6F62383B5D)
%11 = call double @llvm.fmuladd.f64(double %8, double %10, double 0xC0E0BDEEEB9557EE)
%12 = fmul double %7, %11
%13 = load double, double* %3
%14 = load double, double* %3
%15 = load double, double* %3
%16 = fadd double 0xC07509C832753D21, %15
%17 = call double @llvm.fmuladd.f64(double %14, double %16, double 0x40C7EA3DF24271DE)
%18 = call double @llvm.fmuladd.f64(double %13, double %17, double 0xC0E551050DBF4AC6)
%19 = fdiv double %12, %18
ret double %19
}

LLVM IR (-O2):
define double @tan_14s(double %0) {
%2 = fmul double %0, %0
%3 = tail call double @llvm.fmuladd.f64(double %2, double 0xC03A89610E2315F5, double 0x40A40D6F62383B5D)
%4 = tail call double @llvm.fmuladd.f64(double %2, double %3, double 0xC0E0BDEEEB9557EE)
%5 = fmul double %4, %0
%6 = fadd double %2, 0xC07509C832753D21
%7 = tail call double @llvm.fmuladd.f64(double %2, double %6, double 0x40C7EA3DF24271DE)
%8 = tail call double @llvm.fmuladd.f64(double %2, double %7, double 0xC0E551050DBF4AC6)
%9 = fdiv double %5, %8
ret double %9
}