double smally1_bar(x)
double x;
{
  static double p[10] = {
      -0.5862655424363443992938931700e+24, 0.1570668341992328458208364904e+24,
      -0.7351681299005467428400402479e+22, 0.1390658785759080111485190942e+21,
      -0.1339544201526785345938109179e+19, 0.7290257386242270629526344379e+16,
      -0.2340575603057015935501295099e+14, 0.4411516199185230690878878903e+11,
      -0.4542128738770213026987060358e+08, 0.1988612563465350530472715888e+05};
  static double q[10] = {
      0.2990279721605116022908679994e+25, 0.2780285010357803058127175655e+23,
      0.1302687474507355553192845146e+21, 0.4071330372239164349602952937e+18,
      0.9446611865086570116528399283e+15, 0.1707657951197456205887347694e+13,
      0.2440358986882941823431612517e+10, 0.2708852767034077697963790196e+07,
      0.2174361138333330803617969305e+04, 0.1000000000000000000000000000e+01};
  double xsq = x * x;
  return x * POLYNOM9(xsq, p) / POLYNOM9(xsq, q);
}


x86 assembly (clang, -O0):
<smally1_bar>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x10(%rbp),%xmm0
lea    0x2eee(%rip),%rdi
mov    $0x1,%al
call   1030 <POLYNOM9@plt>
movsd  -0x20(%rbp),%xmm0
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
lea    0x2f19(%rip),%rdi
mov    $0x1,%al
call   1030 <POLYNOM9@plt>
movsd  -0x18(%rbp),%xmm0
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<smally1_bar>:
sub    $0x18,%rsp
movsd  %xmm0,0x8(%rsp)
mulsd  %xmm0,%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x2f05(%rip),%rdi
mov    $0x1,%al
call   1030 <POLYNOM9@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
lea    0x2f34(%rip),%rdi
movsd  0x10(%rsp),%xmm0
mov    $0x1,%al
call   1030 <POLYNOM9@plt>
cvtsi2sd %eax,%xmm1
movsd  0x8(%rsp),%xmm0
divsd  %xmm1,%xmm0
add    $0x18,%rsp
ret

LLVM IR (-O0):
@smally1_bar.p = internal global [10 x double] [double 0xC4DF0961330178C5, double 0x44C0A14E192C3981, double 0xC478E8912B6918F3, double 0x441E27B4FF0C7A69, double 0xC3B297045AA4F035, double 0x4339E67351D400DF, double 0xC2B54993C61E6A29, double 0x42248AEFE70FB462, double 0xC185A8973B1A0393, double 0x40D36B880A65EE03]
@smally1_bar.q = internal global [10 x double] [double 0x4503C9BB1BB3170A, double 0x44978CC8377D9084, double 0x441C3F5E3E73C0AA, double 0x439699B55C703ACE, double 0x430AD95093A3BB88, double 0x4278D985877DD74D, double 0x41E22E9D895C410F, double 0x4144AABA622E2C33, double 0x40A0FCB8E71FA5FA, double 1.000000e+00]
define double @smally1_bar(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 = call i32 (double, double*, ...) bitcast (i32 (...)* @POLYNOM9 to i32 (double, double*, ...)*)(double %8, double* getelementptr inbounds ([10 x double], [10 x double]* @smally1_bar.p, i64 0, i64 0))
%10 = sitofp i32 %9 to double
%11 = fmul double %7, %10
%12 = load double, double* %3
%13 = call i32 (double, double*, ...) bitcast (i32 (...)* @POLYNOM9 to i32 (double, double*, ...)*)(double %12, double* getelementptr inbounds ([10 x double], [10 x double]* @smally1_bar.q, i64 0, i64 0))
%14 = sitofp i32 %13 to double
%15 = fdiv double %11, %14
ret double %15
}

LLVM IR (-O2):
@smally1_bar.p = internal global [10 x double] [double 0xC4DF0961330178C5, double 0x44C0A14E192C3981, double 0xC478E8912B6918F3, double 0x441E27B4FF0C7A69, double 0xC3B297045AA4F035, double 0x4339E67351D400DF, double 0xC2B54993C61E6A29, double 0x42248AEFE70FB462, double 0xC185A8973B1A0393, double 0x40D36B880A65EE03]
@smally1_bar.q = internal global [10 x double] [double 0x4503C9BB1BB3170A, double 0x44978CC8377D9084, double 0x441C3F5E3E73C0AA, double 0x439699B55C703ACE, double 0x430AD95093A3BB88, double 0x4278D985877DD74D, double 0x41E22E9D895C410F, double 0x4144AABA622E2C33, double 0x40A0FCB8E71FA5FA, double 1.000000e+00]
define double @smally1_bar(double %0) {
%2 = fmul double %0, %0
%3 = tail call i32 (double, double*, ...) bitcast (i32 (...)* @POLYNOM9 to i32 (double, double*, ...)*)(double %2, double* getelementptr inbounds ([10 x double], [10 x double]* @smally1_bar.p, i64 0, i64 0))
%4 = sitofp i32 %3 to double
%5 = fmul double %4, %0
%6 = tail call i32 (double, double*, ...) bitcast (i32 (...)* @POLYNOM9 to i32 (double, double*, ...)*)(double %2, double* getelementptr inbounds ([10 x double], [10 x double]* @smally1_bar.q, i64 0, i64 0))
%7 = sitofp i32 %6 to double
%8 = fdiv double %5, %7
ret double %8
}