#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int pow(double, int);
double csc_rwarp(double x, double y) {
  double P[7][7];
  int i, j;
  double psum;
  double xx, yy;
  double rout;
  for (i = 0; i < 7; i++) {
    for (j = 0; j < 7; j++) {
      P[i][j] = 0.0;
    }
  }
  P[0][0] = -0.27292696;
  P[0][1] = -0.02819452;
  P[0][2] = 0.27058160;
  P[0][3] = -0.60441560;
  P[0][4] = 0.93412077;
  P[0][5] = -0.63915306;
  P[0][6] = 0.14381585;
  P[1][0] = -0.07629969;
  P[1][1] = -0.01471565;
  P[1][2] = -0.56800938;
  P[1][3] = 1.50880086;
  P[1][4] = -1.41601920;
  P[1][5] = 0.52032238;
  P[2][0] = -0.22797056;
  P[2][1] = 0.48051509;
  P[2][2] = 0.30803317;
  P[2][3] = -0.93678576;
  P[2][4] = 0.33887446;
  P[3][0] = 0.54852384;
  P[3][1] = -1.74114454;
  P[3][2] = 0.98938102;
  P[3][3] = 0.08693841;
  P[4][0] = -0.62930065;
  P[4][1] = 1.71547508;
  P[4][2] = -0.83180469;
  P[5][0] = 0.25795794;
  P[5][1] = -0.53022337;
  P[6][0] = 0.02584375;
  xx = x / 45.0;
  yy = y / 45.0;
  psum = 0.0;
  for (j = 0; j < 7; j++) {
    for (i = 0; i < (7 - j); i++) {
      psum = psum + (P[i][j] * pow(xx, 2 * i) * pow(yy, 2 * j));
    }
  }
  rout = xx + (xx * (1 - pow(xx, 2)) * psum);
  return (rout);
}


x86 assembly (clang, -O0):
<csc_rwarp>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1f0,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movl   $0x0,-0x1a4(%rbp)
cmpl   $0x7,-0x1a4(%rbp)
jge    11a4 <csc_rwarp+0x94>
movl   $0x0,-0x1a8(%rbp)
cmpl   $0x7,-0x1a8(%rbp)
jge    118b <csc_rwarp+0x7b>
movslq -0x1a4(%rbp),%rcx
lea    -0x1a0(%rbp),%rax
imul   $0x38,%rcx,%rcx
add    %rcx,%rax
movslq -0x1a8(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1a8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1a8(%rbp)
jmp    1146 <csc_rwarp+0x36>
jmp    1190 <csc_rwarp+0x80>
mov    -0x1a4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1a4(%rbp)
jmp    112f <csc_rwarp+0x1f>
movsd  0xf34(%rip),%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  0xf1c(%rip),%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  0xf04(%rip),%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  0xeec(%rip),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  0xed4(%rip),%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  0xebc(%rip),%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0xea4(%rip),%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0xe8c(%rip),%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  0xe74(%rip),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  0xe5c(%rip),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  0xe44(%rip),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  0xe2c(%rip),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  0xe14(%rip),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  0xdfc(%rip),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  0xde4(%rip),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  0xdcc(%rip),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  0xdb4(%rip),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  0xd9c(%rip),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0xd84(%rip),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0xd6c(%rip),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  0xd54(%rip),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0xd3c(%rip),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  0xd24(%rip),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0xd0c(%rip),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0xcf4(%rip),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0xcdc(%rip),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0xcc4(%rip),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0xcaf(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xc95(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xc7c(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movl   $0x0,-0x1a8(%rbp)
cmpl   $0x7,-0x1a8(%rbp)
jge    14a3 <csc_rwarp+0x393>
movl   $0x0,-0x1a4(%rbp)
mov    -0x1a4(%rbp),%eax
mov    $0x7,%ecx
sub    -0x1a8(%rbp),%ecx
cmp    %ecx,%eax
jge    148a <csc_rwarp+0x37a>
movsd  -0x1b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1d0(%rbp)
ff
movslq -0x1a4(%rbp),%rcx
lea    -0x1a0(%rbp),%rax
imul   $0x38,%rcx,%rcx
add    %rcx,%rax
movslq -0x1a8(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
mov    -0x1a4(%rbp),%edi
shl    $0x1,%edi
call   1030 <pow@plt>
movsd  -0x1e0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x1c0(%rbp),%xmm0
ff
mov    -0x1a8(%rbp),%edi
shl    $0x1,%edi
call   1030 <pow@plt>
movsd  -0x1d8(%rbp),%xmm0
ff
movsd  -0x1d0(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
mov    -0x1a4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1a4(%rbp)
jmp    13bc <csc_rwarp+0x2ac>
jmp    148f <csc_rwarp+0x37f>
mov    -0x1a8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1a8(%rbp)
jmp    13a5 <csc_rwarp+0x295>
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
mov    $0x2,%edi
call   1030 <pow@plt>
movsd  -0x1f0(%rbp),%xmm0
ff
movsd  -0x1e8(%rbp),%xmm1
ff
mov    %eax,%ecx
mov    $0x1,%eax
sub    %ecx,%eax
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
movsd  -0x1b0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x1c8(%rbp),%xmm0
ff
add    $0x1f0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<csc_rwarp>:
sub    $0x28,%rsp
movsd  0xee4(%rip),%xmm2
divsd  %xmm2,%xmm0
movsd  %xmm0,0x20(%rsp)
divsd  %xmm2,%xmm1
movsd  %xmm1,0x18(%rsp)
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xec2(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x8(%rsp),%xmm0
xorpd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe7d(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe3a(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xdf7(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x8,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xdb4(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0xa,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xd71(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0xc,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xd2e(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xcee(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xca8(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xc62(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xc1c(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x8,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xbd6(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0xa,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xb90(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xb4d(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xb07(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xac1(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xa7b(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x8,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xa35(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x9f2(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x9ac(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x966(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x920(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x6,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x8dd(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x8,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x897(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x8,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x4,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x851(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0x8,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x80e(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0xa,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x7c8(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0xa,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
xor    %edi,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x785(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mov    $0xc,%edi
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x20(%rsp),%xmm0
mov    $0x2,%edi
call   1030 <pow@plt>
mov    $0x1,%ecx
sub    %eax,%ecx
xorps  %xmm0,%xmm0
cvtsi2sd %ecx,%xmm0
movsd  0x20(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x18(%rsp),%xmm0
addsd  %xmm1,%xmm0
add    $0x28,%rsp
ret

LLVM IR (-O0):
define double @csc_rwarp(double %0, double %1) {
%3 = alloca double
%4 = alloca double
%5 = alloca [7 x [7 x double]]
%6 = alloca i32
%7 = alloca i32
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
store double %0, double* %3
store double %1, double* %4
store i32 0, i32* %6
br label %12
12: ; preds = %30, %2
%13 = load i32, i32* %6
%14 = icmp slt i32 %13, 7
br i1 %14, label %15, label %33
15: ; preds = %12
store i32 0, i32* %7
br label %16
16: ; preds = %26, %15
%17 = load i32, i32* %7
%18 = icmp slt i32 %17, 7
br i1 %18, label %19, label %29
19: ; preds = %16
%20 = load i32, i32* %6
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 %21
%23 = load i32, i32* %7
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds [7 x double], [7 x double]* %22, i64 0, i64 %24
store double 0.000000e+00, double* %25
br label %26
26: ; preds = %19
%27 = load i32, i32* %7
%28 = add nsw i32 %27, 1
store i32 %28, i32* %7
br label %16
29: ; preds = %16
br label %30
30: ; preds = %29
%31 = load i32, i32* %6
%32 = add nsw i32 %31, 1
store i32 %32, i32* %6
br label %12
33: ; preds = %12
%34 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 0
%35 = getelementptr inbounds [7 x double], [7 x double]* %34, i64 0, i64 0
store double 0xBFD177A2A3D96389, double* %35
%36 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 0
%37 = getelementptr inbounds [7 x double], [7 x double]* %36, i64 0, i64 1
store double 0xBF9CDF06354E4080, double* %37
%38 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 0
%39 = getelementptr inbounds [7 x double], [7 x double]* %38, i64 0, i64 2
store double 0x3FD151357CB98F02, double* %39
%40 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 0
%41 = getelementptr inbounds [7 x double], [7 x double]* %40, i64 0, i64 3
store double 0xBFE3575F626626A6, double* %41
%42 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 0
%43 = getelementptr inbounds [7 x double], [7 x double]* %42, i64 0, i64 4
store double 0x3FEDE4513DB54242, double* %43
%44 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 0
%45 = getelementptr inbounds [7 x double], [7 x double]* %44, i64 0, i64 5
store double 0xBFE473F11E3AD391, double* %45
%46 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 0
%47 = getelementptr inbounds [7 x double], [7 x double]* %46, i64 0, i64 6
store double 0x3FC2688ECA32BE99, double* %47
%48 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 1
%49 = getelementptr inbounds [7 x double], [7 x double]* %48, i64 0, i64 0
store double 0xBFB38860613EB446, double* %49
%50 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 1
%51 = getelementptr inbounds [7 x double], [7 x double]* %50, i64 0, i64 1
store double 0xBF8E233D1BEA4152, double* %51
%52 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 1
%53 = getelementptr inbounds [7 x double], [7 x double]* %52, i64 0, i64 2
store double 0xBFE22D2201DD7AC5, double* %53
%54 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 1
%55 = getelementptr inbounds [7 x double], [7 x double]* %54, i64 0, i64 3
store double 0x3FF8240C5EDE06DC, double* %55
%56 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 1
%57 = getelementptr inbounds [7 x double], [7 x double]* %56, i64 0, i64 4
store double 0xBFF6A803BFA8211C, double* %57
%58 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 1
%59 = getelementptr inbounds [7 x double], [7 x double]* %58, i64 0, i64 5
store double 0x3FE0A67B1EAF42A3, double* %59
%60 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 2
%61 = getelementptr inbounds [7 x double], [7 x double]* %60, i64 0, i64 0
store double 0xBFCD2E23A9D34D9A, double* %61
%62 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 2
%63 = getelementptr inbounds [7 x double], [7 x double]* %62, i64 0, i64 1
store double 0x3FDEC0C25D323531, double* %63
%64 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 2
%65 = getelementptr inbounds [7 x double], [7 x double]* %64, i64 0, i64 2
store double 0x3FD3B6D0C1CEECE3, double* %65
%66 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 2
%67 = getelementptr inbounds [7 x double], [7 x double]* %66, i64 0, i64 3
store double 0xBFEDFA262151DF46, double* %67
%68 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 2
%69 = getelementptr inbounds [7 x double], [7 x double]* %68, i64 0, i64 4
store double 0x3FD5B01E80C99408, double* %69
%70 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 3
%71 = getelementptr inbounds [7 x double], [7 x double]* %70, i64 0, i64 0
store double 0x3FE18D81DE3C0AF3, double* %71
%72 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 3
%73 = getelementptr inbounds [7 x double], [7 x double]* %72, i64 0, i64 1
store double 0xBFFBDBBA608E8B1E, double* %73
%74 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 3
%75 = getelementptr inbounds [7 x double], [7 x double]* %74, i64 0, i64 2
store double 0x3FEFA9026285DC23, double* %75
%76 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 3
%77 = getelementptr inbounds [7 x double], [7 x double]* %76, i64 0, i64 3
store double 0x3FB641987BB75B76, double* %77
%78 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 4
%79 = getelementptr inbounds [7 x double], [7 x double]* %78, i64 0, i64 0
store double 0xBFE4233B1DE33FD6, double* %79
%80 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 4
%81 = getelementptr inbounds [7 x double], [7 x double]* %80, i64 0, i64 1
store double 0x3FFB7295FF5B3F6C, double* %81
%82 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 4
%83 = getelementptr inbounds [7 x double], [7 x double]* %82, i64 0, i64 2
store double 0xBFEA9E24DE86B38E, double* %83
%84 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 5
%85 = getelementptr inbounds [7 x double], [7 x double]* %84, i64 0, i64 0
store double 0x3FD082620502C933, double* %85
%86 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 5
%87 = getelementptr inbounds [7 x double], [7 x double]* %86, i64 0, i64 1
store double 0xBFE0F79700373271, double* %87
%88 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 6
%89 = getelementptr inbounds [7 x double], [7 x double]* %88, i64 0, i64 0
store double 0x3F9A76C8B4395810, double* %89
%90 = load double, double* %3
%91 = fdiv double %90, 4.500000e+01
store double %91, double* %9
%92 = load double, double* %4
%93 = fdiv double %92, 4.500000e+01
store double %93, double* %10
store double 0.000000e+00, double* %8
store i32 0, i32* %7
br label %94
94: ; preds = %128, %33
%95 = load i32, i32* %7
%96 = icmp slt i32 %95, 7
br i1 %96, label %97, label %131
97: ; preds = %94
store i32 0, i32* %6
br label %98
98: ; preds = %124, %97
%99 = load i32, i32* %6
%100 = load i32, i32* %7
%101 = sub nsw i32 7, %100
%102 = icmp slt i32 %99, %101
br i1 %102, label %103, label %127
103: ; preds = %98
%104 = load double, double* %8
%105 = load i32, i32* %6
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds [7 x [7 x double]], [7 x [7 x double]]* %5, i64 0, i64 %106
%108 = load i32, i32* %7
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds [7 x double], [7 x double]* %107, i64 0, i64 %109
%111 = load double, double* %110
%112 = load double, double* %9
%113 = load i32, i32* %6
%114 = mul nsw i32 2, %113
%115 = call i32 @pow(double %112, i32 %114)
%116 = sitofp i32 %115 to double
%117 = fmul double %111, %116
%118 = load double, double* %10
%119 = load i32, i32* %7
%120 = mul nsw i32 2, %119
%121 = call i32 @pow(double %118, i32 %120)
%122 = sitofp i32 %121 to double
%123 = call double @llvm.fmuladd.f64(double %117, double %122, double %104)
store double %123, double* %8
br label %124
124: ; preds = %103
%125 = load i32, i32* %6
%126 = add nsw i32 %125, 1
store i32 %126, i32* %6
br label %98
127: ; preds = %98
br label %128
128: ; preds = %127
%129 = load i32, i32* %7
%130 = add nsw i32 %129, 1
store i32 %130, i32* %7
br label %94
131: ; preds = %94
%132 = load double, double* %9
%133 = load double, double* %9
%134 = load double, double* %9
%135 = call i32 @pow(double %134, i32 2)
%136 = sub nsw i32 1, %135
%137 = sitofp i32 %136 to double
%138 = fmul double %133, %137
%139 = load double, double* %8
%140 = call double @llvm.fmuladd.f64(double %138, double %139, double %132)
store double %140, double* %11
%141 = load double, double* %11
ret double %141
}

LLVM IR (-O2):
define double @csc_rwarp(double %0, double %1) {
%3 = fdiv double %0, 4.500000e+01
%4 = fdiv double %1, 4.500000e+01
%5 = tail call i32 @pow(double %3, i32 0)
%6 = sitofp i32 %5 to double
%7 = fmul double %6, 0xBFD177A2A3D96389
%8 = tail call i32 @pow(double %4, i32 0)
%9 = sitofp i32 %8 to double
%10 = tail call double @llvm.fmuladd.f64(double %7, double %9, double 0.000000e+00)
%11 = tail call i32 @pow(double %3, i32 2)
%12 = sitofp i32 %11 to double
%13 = fmul double %12, 0xBFB38860613EB446
%14 = tail call i32 @pow(double %4, i32 0)
%15 = sitofp i32 %14 to double
%16 = tail call double @llvm.fmuladd.f64(double %13, double %15, double %10)
%17 = tail call i32 @pow(double %3, i32 4)
%18 = sitofp i32 %17 to double
%19 = fmul double %18, 0xBFCD2E23A9D34D9A
%20 = tail call i32 @pow(double %4, i32 0)
%21 = sitofp i32 %20 to double
%22 = tail call double @llvm.fmuladd.f64(double %19, double %21, double %16)
%23 = tail call i32 @pow(double %3, i32 6)
%24 = sitofp i32 %23 to double
%25 = fmul double %24, 0x3FE18D81DE3C0AF3
%26 = tail call i32 @pow(double %4, i32 0)
%27 = sitofp i32 %26 to double
%28 = tail call double @llvm.fmuladd.f64(double %25, double %27, double %22)
%29 = tail call i32 @pow(double %3, i32 8)
%30 = sitofp i32 %29 to double
%31 = fmul double %30, 0xBFE4233B1DE33FD6
%32 = tail call i32 @pow(double %4, i32 0)
%33 = sitofp i32 %32 to double
%34 = tail call double @llvm.fmuladd.f64(double %31, double %33, double %28)
%35 = tail call i32 @pow(double %3, i32 10)
%36 = sitofp i32 %35 to double
%37 = fmul double %36, 0x3FD082620502C933
%38 = tail call i32 @pow(double %4, i32 0)
%39 = sitofp i32 %38 to double
%40 = tail call double @llvm.fmuladd.f64(double %37, double %39, double %34)
%41 = tail call i32 @pow(double %3, i32 12)
%42 = sitofp i32 %41 to double
%43 = fmul double %42, 0x3F9A76C8B4395810
%44 = tail call i32 @pow(double %4, i32 0)
%45 = sitofp i32 %44 to double
%46 = tail call double @llvm.fmuladd.f64(double %43, double %45, double %40)
%47 = tail call i32 @pow(double %3, i32 0)
%48 = sitofp i32 %47 to double
%49 = fmul double %48, 0xBF9CDF06354E4080
%50 = tail call i32 @pow(double %4, i32 2)
%51 = sitofp i32 %50 to double
%52 = tail call double @llvm.fmuladd.f64(double %49, double %51, double %46)
%53 = tail call i32 @pow(double %3, i32 2)
%54 = sitofp i32 %53 to double
%55 = fmul double %54, 0xBF8E233D1BEA4152
%56 = tail call i32 @pow(double %4, i32 2)
%57 = sitofp i32 %56 to double
%58 = tail call double @llvm.fmuladd.f64(double %55, double %57, double %52)
%59 = tail call i32 @pow(double %3, i32 4)
%60 = sitofp i32 %59 to double
%61 = fmul double %60, 0x3FDEC0C25D323531
%62 = tail call i32 @pow(double %4, i32 2)
%63 = sitofp i32 %62 to double
%64 = tail call double @llvm.fmuladd.f64(double %61, double %63, double %58)
%65 = tail call i32 @pow(double %3, i32 6)
%66 = sitofp i32 %65 to double
%67 = fmul double %66, 0xBFFBDBBA608E8B1E
%68 = tail call i32 @pow(double %4, i32 2)
%69 = sitofp i32 %68 to double
%70 = tail call double @llvm.fmuladd.f64(double %67, double %69, double %64)
%71 = tail call i32 @pow(double %3, i32 8)
%72 = sitofp i32 %71 to double
%73 = fmul double %72, 0x3FFB7295FF5B3F6C
%74 = tail call i32 @pow(double %4, i32 2)
%75 = sitofp i32 %74 to double
%76 = tail call double @llvm.fmuladd.f64(double %73, double %75, double %70)
%77 = tail call i32 @pow(double %3, i32 10)
%78 = sitofp i32 %77 to double
%79 = fmul double %78, 0xBFE0F79700373271
%80 = tail call i32 @pow(double %4, i32 2)
%81 = sitofp i32 %80 to double
%82 = tail call double @llvm.fmuladd.f64(double %79, double %81, double %76)
%83 = tail call i32 @pow(double %3, i32 0)
%84 = sitofp i32 %83 to double
%85 = fmul double %84, 0x3FD151357CB98F02
%86 = tail call i32 @pow(double %4, i32 4)
%87 = sitofp i32 %86 to double
%88 = tail call double @llvm.fmuladd.f64(double %85, double %87, double %82)
%89 = tail call i32 @pow(double %3, i32 2)
%90 = sitofp i32 %89 to double
%91 = fmul double %90, 0xBFE22D2201DD7AC5
%92 = tail call i32 @pow(double %4, i32 4)
%93 = sitofp i32 %92 to double
%94 = tail call double @llvm.fmuladd.f64(double %91, double %93, double %88)
%95 = tail call i32 @pow(double %3, i32 4)
%96 = sitofp i32 %95 to double
%97 = fmul double %96, 0x3FD3B6D0C1CEECE3
%98 = tail call i32 @pow(double %4, i32 4)
%99 = sitofp i32 %98 to double
%100 = tail call double @llvm.fmuladd.f64(double %97, double %99, double %94)
%101 = tail call i32 @pow(double %3, i32 6)
%102 = sitofp i32 %101 to double
%103 = fmul double %102, 0x3FEFA9026285DC23
%104 = tail call i32 @pow(double %4, i32 4)
%105 = sitofp i32 %104 to double
%106 = tail call double @llvm.fmuladd.f64(double %103, double %105, double %100)
%107 = tail call i32 @pow(double %3, i32 8)
%108 = sitofp i32 %107 to double
%109 = fmul double %108, 0xBFEA9E24DE86B38E
%110 = tail call i32 @pow(double %4, i32 4)
%111 = sitofp i32 %110 to double
%112 = tail call double @llvm.fmuladd.f64(double %109, double %111, double %106)
%113 = tail call i32 @pow(double %3, i32 0)
%114 = sitofp i32 %113 to double
%115 = fmul double %114, 0xBFE3575F626626A6
%116 = tail call i32 @pow(double %4, i32 6)
%117 = sitofp i32 %116 to double
%118 = tail call double @llvm.fmuladd.f64(double %115, double %117, double %112)
%119 = tail call i32 @pow(double %3, i32 2)
%120 = sitofp i32 %119 to double
%121 = fmul double %120, 0x3FF8240C5EDE06DC
%122 = tail call i32 @pow(double %4, i32 6)
%123 = sitofp i32 %122 to double
%124 = tail call double @llvm.fmuladd.f64(double %121, double %123, double %118)
%125 = tail call i32 @pow(double %3, i32 4)
%126 = sitofp i32 %125 to double
%127 = fmul double %126, 0xBFEDFA262151DF46
%128 = tail call i32 @pow(double %4, i32 6)
%129 = sitofp i32 %128 to double
%130 = tail call double @llvm.fmuladd.f64(double %127, double %129, double %124)
%131 = tail call i32 @pow(double %3, i32 6)
%132 = sitofp i32 %131 to double
%133 = fmul double %132, 0x3FB641987BB75B76
%134 = tail call i32 @pow(double %4, i32 6)
%135 = sitofp i32 %134 to double
%136 = tail call double @llvm.fmuladd.f64(double %133, double %135, double %130)
%137 = tail call i32 @pow(double %3, i32 0)
%138 = sitofp i32 %137 to double
%139 = fmul double %138, 0x3FEDE4513DB54242
%140 = tail call i32 @pow(double %4, i32 8)
%141 = sitofp i32 %140 to double
%142 = tail call double @llvm.fmuladd.f64(double %139, double %141, double %136)
%143 = tail call i32 @pow(double %3, i32 2)
%144 = sitofp i32 %143 to double
%145 = fmul double %144, 0xBFF6A803BFA8211C
%146 = tail call i32 @pow(double %4, i32 8)
%147 = sitofp i32 %146 to double
%148 = tail call double @llvm.fmuladd.f64(double %145, double %147, double %142)
%149 = tail call i32 @pow(double %3, i32 4)
%150 = sitofp i32 %149 to double
%151 = fmul double %150, 0x3FD5B01E80C99408
%152 = tail call i32 @pow(double %4, i32 8)
%153 = sitofp i32 %152 to double
%154 = tail call double @llvm.fmuladd.f64(double %151, double %153, double %148)
%155 = tail call i32 @pow(double %3, i32 0)
%156 = sitofp i32 %155 to double
%157 = fmul double %156, 0xBFE473F11E3AD391
%158 = tail call i32 @pow(double %4, i32 10)
%159 = sitofp i32 %158 to double
%160 = tail call double @llvm.fmuladd.f64(double %157, double %159, double %154)
%161 = tail call i32 @pow(double %3, i32 2)
%162 = sitofp i32 %161 to double
%163 = fmul double %162, 0x3FE0A67B1EAF42A3
%164 = tail call i32 @pow(double %4, i32 10)
%165 = sitofp i32 %164 to double
%166 = tail call double @llvm.fmuladd.f64(double %163, double %165, double %160)
%167 = tail call i32 @pow(double %3, i32 0)
%168 = sitofp i32 %167 to double
%169 = fmul double %168, 0x3FC2688ECA32BE99
%170 = tail call i32 @pow(double %4, i32 12)
%171 = sitofp i32 %170 to double
%172 = tail call double @llvm.fmuladd.f64(double %169, double %171, double %166)
%173 = tail call i32 @pow(double %3, i32 2)
%174 = sub nsw i32 1, %173
%175 = sitofp i32 %174 to double
%176 = fmul double %3, %175
%177 = tail call double @llvm.fmuladd.f64(double %176, double %172, double %3)
ret double %177
}