void bioR1__3d(HHH, HHL, HLH, HLL, LHH, LHL, LLH, LLL, outvector, xlength,
               ylength, zlength, X, norm) float *HLL,
    *HLH, *HHL, *HHH;
float *LLL, *LLH, *LHL, *LHH;
float *outvector;
int xlength, ylength, zlength;
float X, norm;
{
  float *vptr, *vptrx0, *vptry0;
  float *HLLptr, *HLHptr, *HHLptr, *HHHptr;
  float *LLLptr, *LLHptr, *LHLptr, *LHHptr;
  float x1, x0, x_1, x_2;
  int dim;
  dim = (xlength > 1) + (ylength > 1) + (zlength > 1);
  if (dim == 3) {
    x1 = X * norm;
    x0 = norm;
    x_1 = norm / X;
    x_2 = x_1 / X;
  }
  if (dim == 2) {
    x1 = 0;
    x0 = X * norm;
    x_1 = norm;
    x_2 = norm / X;
  }
  if (dim == 1) {
    x_1 = X * norm;
    x_2 = norm;
    x1 = 0;
    x0 = 0;
  }
  if (dim == 0) {
    X = 1.0;
    norm = 1.0;
    x_2 = X * norm;
    x1 = 0;
    x0 = 0;
    x_1 = 0;
  }
  HHHptr = HHH + (zlength >> 1) * (ylength >> 1) * (xlength >> 1) - 1;
  LHHptr = LHH + ((zlength + 1) >> 1) * (ylength >> 1) * (xlength >> 1) - 1;
  HLHptr = HLH + (zlength >> 1) * ((ylength + 1) >> 1) * (xlength >> 1) - 1;
  LLHptr =
      LLH + ((zlength + 1) >> 1) * ((ylength + 1) >> 1) * (xlength >> 1) - 1;
  HHLptr = HHL + (zlength >> 1) * (ylength >> 1) * ((xlength + 1) >> 1) - 1;
  LHLptr =
      LHL + ((zlength + 1) >> 1) * (ylength >> 1) * ((xlength + 1) >> 1) - 1;
  HLLptr =
      HLL + (zlength >> 1) * ((ylength + 1) >> 1) * ((xlength + 1) >> 1) - 1;
  LLLptr = LLL +
           ((zlength + 1) >> 1) * ((ylength + 1) >> 1) * ((xlength + 1) >> 1) -
           1;
  vptr = outvector + zlength * ylength * xlength - 1;
  vptry0 = vptr;
  vptrx0 = vptr;
  if (1 & zlength) {
    vptry0 -= xlength * ylength;
    if (1 & ylength) {
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_2 * *(LLLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x_1 * *(LLHptr--);
        *(vptr--) = x_2 * *(LLLptr--);
      }
    }
    while (vptrx0 > vptry0) {
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_1 * *(LHLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x0 * *(LHHptr--);
        *(vptr--) = x_1 * *(LHLptr--);
      }
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_2 * *(LLLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x_1 * *(LLHptr--);
        *(vptr--) = x_2 * *(LLLptr--);
      }
    }
  }
  while (outvector <= vptry0) {
    vptry0 -= xlength * ylength;
    if (1 & ylength) {
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_1 * *(HLLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x0 * *(HLHptr--);
        *(vptr--) = x_1 * *(HLLptr--);
      }
    }
    while (vptrx0 > vptry0) {
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x0 * *(HHLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x1 * *(HHHptr--);
        *(vptr--) = x0 * *(HHLptr--);
      }
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_1 * *(HLLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x0 * *(HLHptr--);
        *(vptr--) = x_1 * *(HLLptr--);
      }
    }
    vptry0 -= xlength * ylength;
    if (1 & ylength) {
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_2 * *(LLLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x_1 * *(LLHptr--);
        *(vptr--) = x_2 * *(LLLptr--);
      }
    }
    while (vptrx0 > vptry0) {
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_1 * *(LHLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x0 * *(LHHptr--);
        *(vptr--) = x_1 * *(LHLptr--);
      }
      vptrx0 -= xlength;
      if (1 & xlength)
        *(vptr--) = x_2 * *(LLLptr--);
      while (vptr > vptrx0) {
        *(vptr--) = x_1 * *(LLHptr--);
        *(vptr--) = x_2 * *(LLLptr--);
      }
    }
  }
}


x86 assembly (clang, -O0):
<bioR1__3d>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
movsd  %xmm1,-0xb0(%rbp)
ff
movaps %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
mov    0x38(%rbp),%eax
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%eax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
cvtsd2ss %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm0
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movss  %xmm1,-0x34(%rbp)
movss  %xmm0,-0x38(%rbp)
cmpl   $0x1,0x28(%rbp)
setg   %al
and    $0x1,%al
movzbl %al,%eax
cmpl   $0x1,0x30(%rbp)
setg   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cmpl   $0x1,0x38(%rbp)
setg   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
mov    %eax,-0xa4(%rbp)
cmpl   $0x3,-0xa4(%rbp)
jne    11dd <bioR1__3d+0xdd>
movss  -0x34(%rbp),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x94(%rbp)
ff
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x98(%rbp)
ff
movss  -0x38(%rbp),%xmm0
divss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
divss  -0x34(%rbp),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
cmpl   $0x2,-0xa4(%rbp)
jne    1226 <bioR1__3d+0x126>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
movss  -0x34(%rbp),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x98(%rbp)
ff
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x38(%rbp),%xmm0
divss  -0x34(%rbp),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
cmpl   $0x1,-0xa4(%rbp)
jne    1268 <bioR1__3d+0x168>
movss  -0x34(%rbp),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x98(%rbp)
ff
cmpl   $0x0,-0xa4(%rbp)
jne    12c2 <bioR1__3d+0x1c2>
movss  0xd83(%rip),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  0xd76(%rip),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x34(%rbp),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x98(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    -0x8(%rbp),%rax
mov    0x38(%rbp),%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x70(%rbp)
mov    -0x28(%rbp),%rax
mov    0x38(%rbp),%ecx
add    $0x1,%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x90(%rbp)
mov    -0x18(%rbp),%rax
mov    0x38(%rbp),%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x60(%rbp)
mov    0x10(%rbp),%rax
mov    0x38(%rbp),%ecx
add    $0x1,%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x80(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rbp),%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x68(%rbp)
mov    -0x30(%rbp),%rax
mov    0x38(%rbp),%ecx
add    $0x1,%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x88(%rbp)
mov    -0x20(%rbp),%rax
mov    0x38(%rbp),%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x58(%rbp)
mov    0x18(%rbp),%rax
mov    0x38(%rbp),%ecx
add    $0x1,%ecx
sar    $0x1,%ecx
mov    0x30(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
mov    0x28(%rbp),%edx
add    $0x1,%edx
sar    $0x1,%edx
imul   %edx,%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x78(%rbp)
mov    0x20(%rbp),%rax
mov    0x38(%rbp),%ecx
imul   0x30(%rbp),%ecx
imul   0x28(%rbp),%ecx
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
mov    %rax,-0x50(%rbp)
mov    -0x40(%rbp),%rax
mov    %rax,-0x48(%rbp)
mov    0x38(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     175e <bioR1__3d+0x65e>
mov    0x28(%rbp),%ecx
imul   0x30(%rbp),%ecx
mov    -0x50(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x50(%rbp)
mov    0x30(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1599 <bioR1__3d+0x499>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1520 <bioR1__3d+0x420>
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1525 <bioR1__3d+0x425>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1594 <bioR1__3d+0x494>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x80(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x80(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1525 <bioR1__3d+0x425>
jmp    1599 <bioR1__3d+0x499>
jmp    159e <bioR1__3d+0x49e>
mov    -0x48(%rbp),%rax
cmp    -0x50(%rbp),%rax
jbe    1759 <bioR1__3d+0x659>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1609 <bioR1__3d+0x509>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x88(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x88(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    160e <bioR1__3d+0x50e>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1689 <bioR1__3d+0x589>
movss  -0x98(%rbp),%xmm0
ff
mov    -0x90(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x90(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x88(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x88(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    160e <bioR1__3d+0x50e>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     16e0 <bioR1__3d+0x5e0>
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    16e5 <bioR1__3d+0x5e5>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1754 <bioR1__3d+0x654>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x80(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x80(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    16e5 <bioR1__3d+0x5e5>
jmp    159e <bioR1__3d+0x49e>
jmp    175e <bioR1__3d+0x65e>
jmp    1763 <bioR1__3d+0x663>
mov    0x20(%rbp),%rax
cmp    -0x50(%rbp),%rax
ja     1cde <bioR1__3d+0xbde>
mov    0x28(%rbp),%ecx
imul   0x30(%rbp),%ecx
mov    -0x50(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x50(%rbp)
mov    0x30(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     186e <bioR1__3d+0x76e>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     17f5 <bioR1__3d+0x6f5>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x58(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x58(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    17fa <bioR1__3d+0x6fa>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1869 <bioR1__3d+0x769>
movss  -0x98(%rbp),%xmm0
ff
mov    -0x60(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x60(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x58(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x58(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    17fa <bioR1__3d+0x6fa>
jmp    186e <bioR1__3d+0x76e>
jmp    1873 <bioR1__3d+0x773>
mov    -0x48(%rbp),%rax
cmp    -0x50(%rbp),%rax
jbe    1a1c <bioR1__3d+0x91c>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     18d8 <bioR1__3d+0x7d8>
movss  -0x98(%rbp),%xmm0
ff
mov    -0x68(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x68(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    18dd <bioR1__3d+0x7dd>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    194c <bioR1__3d+0x84c>
movss  -0x94(%rbp),%xmm0
ff
mov    -0x70(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x70(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0x98(%rbp),%xmm0
ff
mov    -0x68(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x68(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    18dd <bioR1__3d+0x7dd>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     19a3 <bioR1__3d+0x8a3>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x58(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x58(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    19a8 <bioR1__3d+0x8a8>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1a17 <bioR1__3d+0x917>
movss  -0x98(%rbp),%xmm0
ff
mov    -0x60(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x60(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x58(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x58(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    19a8 <bioR1__3d+0x8a8>
jmp    1873 <bioR1__3d+0x773>
mov    0x28(%rbp),%ecx
imul   0x30(%rbp),%ecx
mov    -0x50(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x50(%rbp)
mov    0x30(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1b19 <bioR1__3d+0xa19>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1aa0 <bioR1__3d+0x9a0>
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1aa5 <bioR1__3d+0x9a5>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1b14 <bioR1__3d+0xa14>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x80(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x80(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1aa5 <bioR1__3d+0x9a5>
jmp    1b19 <bioR1__3d+0xa19>
jmp    1b1e <bioR1__3d+0xa1e>
mov    -0x48(%rbp),%rax
cmp    -0x50(%rbp),%rax
jbe    1cd9 <bioR1__3d+0xbd9>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1b89 <bioR1__3d+0xa89>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x88(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x88(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1b8e <bioR1__3d+0xa8e>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1c09 <bioR1__3d+0xb09>
movss  -0x98(%rbp),%xmm0
ff
mov    -0x90(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x90(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x88(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x88(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1b8e <bioR1__3d+0xa8e>
mov    0x28(%rbp),%ecx
mov    -0x48(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    0x28(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1c60 <bioR1__3d+0xb60>
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1c65 <bioR1__3d+0xb65>
mov    -0x40(%rbp),%rax
cmp    -0x48(%rbp),%rax
jbe    1cd4 <bioR1__3d+0xbd4>
movss  -0x9c(%rbp),%xmm0
ff
mov    -0x80(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x80(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
movss  -0xa0(%rbp),%xmm0
ff
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x78(%rbp)
mulss  (%rax),%xmm0
mov    -0x40(%rbp),%rax
mov    %rax,%rcx
add    $0xfffffffffffffffc,%rcx
mov    %rcx,-0x40(%rbp)
movss  %xmm0,(%rax)
jmp    1c65 <bioR1__3d+0xb65>
jmp    1b1e <bioR1__3d+0xa1e>
jmp    1763 <bioR1__3d+0x663>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bioR1__3d>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rsi,%rax
mov    0x60(%rsp),%r10d
mov    0x58(%rsp),%esi
mov    0x50(%rsp),%r14d
mov    0x40(%rsp),%r11
cvtsd2ss %xmm0,%xmm2
mov    0x38(%rsp),%r15
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
xor    %ebx,%ebx
cmp    $0x2,%r14d
setge  %bl
xor    %ebp,%ebp
cmp    $0x2,%esi
setge  %bpl
add    %ebx,%ebp
xor    %ebx,%ebx
cmp    $0x2,%r10d
setge  %bl
add    %ebp,%ebx
xorps  %xmm1,%xmm1
cmp    $0x1,%ebx
mov    %rcx,-0x8(%rsp)
mov    %rax,-0x10(%rsp)
mov    %rdx,-0x18(%rsp)
mov    %rdi,-0x20(%rsp)
je     1192 <bioR1__3d+0x92>
cmp    $0x2,%ebx
je     119e <bioR1__3d+0x9e>
cmp    $0x3,%ebx
jne    11b1 <bioR1__3d+0xb1>
movaps %xmm2,%xmm1
mulss  %xmm0,%xmm1
movaps %xmm0,%xmm3
divss  %xmm2,%xmm3
movaps %xmm3,%xmm4
divss  %xmm2,%xmm4
movaps %xmm0,%xmm2
movaps %xmm4,%xmm0
jmp    11bf <bioR1__3d+0xbf>
movaps %xmm2,%xmm3
mulss  %xmm0,%xmm3
xorps  %xmm2,%xmm2
jmp    11bf <bioR1__3d+0xbf>
movaps %xmm0,%xmm4
divss  %xmm2,%xmm4
mulss  %xmm0,%xmm2
movaps %xmm0,%xmm3
movaps %xmm4,%xmm0
jmp    11bf <bioR1__3d+0xbf>
movss  0xe47(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
mov    %esi,%ecx
sar    %ecx
mov    %r14d,%edx
sar    %edx
lea    0x1(%r10),%ebx
sar    %ebx
mov    %ebx,%eax
imul   %ecx,%eax
mov    %eax,%ebp
imul   %edx,%ebp
movslq %ebp,%rbp
lea    (%r8,%rbp,4),%r8
add    $0xfffffffffffffffc,%r8
lea    0x1(%rsi),%edi
sar    %edi
mov    %edi,-0x30(%rsp)
imul   %edi,%ebx
mov    %ebx,%edi
mov    %edx,-0x2c(%rsp)
imul   %edx,%edi
movslq %edi,%rdi
lea    (%r15,%rdi,4),%r12
add    $0xfffffffffffffffc,%r12
lea    0x1(%r14),%edx
sar    %edx
imul   %edx,%eax
cltq
lea    (%r9,%rax,4),%r9
add    $0xfffffffffffffffc,%r9
mov    %edx,-0x34(%rsp)
imul   %edx,%ebx
movslq %ebx,%rax
lea    (%r11,%rax,4),%rax
add    $0xfffffffffffffffc,%rax
mov    %esi,%edi
imul   %r14d,%edi
movslq %edi,%rdx
imul   %r10d,%edi
movslq %edi,%rdi
mov    0x48(%rsp),%rbp
lea    -0x4(,%rdi,4),%rbx
ff
add    %rbp,%rbx
movslq %r14d,%r13
test   $0x1,%r10b
mov    %rdx,-0x28(%rsp)
jne    1261 <bioR1__3d+0x161>
mov    %rbx,%r15
mov    %rbx,%r11
jmp    13b1 <bioR1__3d+0x2b1>
lea    0x0(,%rdx,4),%rdi
mov    %rbx,%r11
sub    %rdi,%r11
test   $0x1,%sil
jne    127a <bioR1__3d+0x17a>
mov    %rbx,%r15
jmp    12dc <bioR1__3d+0x1dc>
lea    0x0(,%r13,4),%rdi
mov    %rbx,%r15
sub    %rdi,%r15
test   $0x1,%r14b
je     12d7 <bioR1__3d+0x1d7>
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
jmp    12d7 <bioR1__3d+0x1d7>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movss  (%r12),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r12
movss  %xmm4,(%rbx)
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %r15,%rbx
ja     12b0 <bioR1__3d+0x1b0>
cmp    %r11,%r15
jbe    13b1 <bioR1__3d+0x2b1>
mov    %r13,%rdi
neg    %rdi
jmp    12f9 <bioR1__3d+0x1f9>
nopl   (%rax)
cmp    %r11,%r15
jbe    13b1 <bioR1__3d+0x2b1>
test   $0x1,%r14b
je     1314 <bioR1__3d+0x214>
movss  (%r9),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r9
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    (%r15,%rdi,4),%rbp
cmp    %rbp,%rbx
jbe    134c <bioR1__3d+0x24c>
nopl   (%rax)
movss  (%r8),%xmm4
mulss  %xmm2,%xmm4
add    $0xfffffffffffffffc,%r8
movss  %xmm4,(%rbx)
movss  (%r9),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r9
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %rbp,%rbx
ja     1320 <bioR1__3d+0x220>
test   $0x1,%r14b
je     1366 <bioR1__3d+0x266>
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    0x0(,%rdi,4),%r15
add    %rbp,%r15
cmp    %r15,%rbx
jbe    12f0 <bioR1__3d+0x1f0>
nopw   0x0(%rax,%rax,1)
movss  (%r12),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r12
movss  %xmm4,(%rbx)
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %r15,%rbx
ja     1380 <bioR1__3d+0x280>
jmp    12f0 <bioR1__3d+0x1f0>
cmp    0x48(%rsp),%r11
jae    13c3 <bioR1__3d+0x2c3>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
sar    %r10d
imul   %r10d,%ecx
imul   -0x30(%rsp),%r10d
mov    %ecx,%edi
mov    -0x2c(%rsp),%edx
imul   %edx,%edi
imul   %r10d,%edx
mov    -0x34(%rsp),%esi
imul   %esi,%ecx
imul   %esi,%r10d
movslq %edi,%rsi
movslq %edx,%rdx
movslq %ecx,%rcx
movslq %r10d,%r10
mov    -0x20(%rsp),%rdi
lea    -0x4(%rdi,%rsi,4),%rdi
mov    -0x18(%rsp),%rsi
lea    -0x4(%rsi,%rdx,4),%rdx
mov    -0x10(%rsp),%rsi
lea    (%rsi,%rcx,4),%rsi
add    $0xfffffffffffffffc,%rsi
mov    -0x8(%rsp),%rcx
lea    (%rcx,%r10,4),%rcx
add    $0xfffffffffffffffc,%rcx
negq   -0x28(%rsp)
neg    %r13
jmp    143b <bioR1__3d+0x33b>
nopl   0x0(%rax)
cmp    0x48(%rsp),%r11
jb     13b8 <bioR1__3d+0x2b8>
mov    0x58(%rsp),%ebp
test   $0x1,%bpl
jne    1610 <bioR1__3d+0x510>
mov    -0x28(%rsp),%rbp
lea    (%r11,%rbp,4),%r10
mov    %rbp,%r11
cs nopw 0x0(%rax,%rax,1)
nop
cmp    %r10,%r15
jbe    1520 <bioR1__3d+0x420>
test   $0x1,%r14b
je     1483 <bioR1__3d+0x383>
movss  (%rsi),%xmm4
mulss  %xmm2,%xmm4
add    $0xfffffffffffffffc,%rsi
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    (%r15,%r13,4),%rbp
cmp    %rbp,%rbx
jbe    14ba <bioR1__3d+0x3ba>
nopl   0x0(%rax)
movss  (%rdi),%xmm4
mulss  %xmm1,%xmm4
add    $0xfffffffffffffffc,%rdi
movss  %xmm4,(%rbx)
movss  (%rsi),%xmm4
mulss  %xmm2,%xmm4
add    $0xfffffffffffffffc,%rsi
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %rbp,%rbx
ja     1490 <bioR1__3d+0x390>
test   $0x1,%r14b
je     14d4 <bioR1__3d+0x3d4>
movss  (%rcx),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%rcx
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    0x0(,%r13,4),%r15
add    %rbp,%r15
cmp    %r15,%rbx
jbe    1460 <bioR1__3d+0x360>
nopl   0x0(%rax,%rax,1)
movss  (%rdx),%xmm4
mulss  %xmm2,%xmm4
add    $0xfffffffffffffffc,%rdx
movss  %xmm4,(%rbx)
movss  (%rcx),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%rcx
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %r15,%rbx
ja     14f0 <bioR1__3d+0x3f0>
jmp    1460 <bioR1__3d+0x360>
nop
mov    0x58(%rsp),%ebp
test   $0x1,%bpl
jne    1670 <bioR1__3d+0x570>
lea    (%r10,%r11,4),%r11
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
cmp    %r11,%r15
jbe    1430 <bioR1__3d+0x330>
test   $0x1,%r14b
je     1564 <bioR1__3d+0x464>
movss  (%r9),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r9
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    (%r15,%r13,4),%rbp
cmp    %rbp,%rbx
jbe    159c <bioR1__3d+0x49c>
nopl   (%rax)
movss  (%r8),%xmm4
mulss  %xmm2,%xmm4
add    $0xfffffffffffffffc,%r8
movss  %xmm4,(%rbx)
movss  (%r9),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r9
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %rbp,%rbx
ja     1570 <bioR1__3d+0x470>
test   $0x1,%r14b
je     15b6 <bioR1__3d+0x4b6>
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    0x0(,%r13,4),%r15
add    %rbp,%r15
cmp    %r15,%rbx
jbe    1540 <bioR1__3d+0x440>
nopw   0x0(%rax,%rax,1)
movss  (%r12),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r12
movss  %xmm4,(%rbx)
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %r15,%rbx
ja     15d0 <bioR1__3d+0x4d0>
jmp    1540 <bioR1__3d+0x440>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
test   $0x1,%r14b
je     162a <bioR1__3d+0x52a>
movss  (%rcx),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%rcx
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    (%r15,%r13,4),%r15
cmp    %r15,%rbx
jbe    1449 <bioR1__3d+0x349>
nopw   0x0(%rax,%rax,1)
movss  (%rdx),%xmm4
mulss  %xmm2,%xmm4
add    $0xfffffffffffffffc,%rdx
movss  %xmm4,(%rbx)
movss  (%rcx),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%rcx
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %r15,%rbx
ja     1640 <bioR1__3d+0x540>
jmp    1449 <bioR1__3d+0x349>
nop
test   $0x1,%r14b
je     168a <bioR1__3d+0x58a>
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,(%rbx)
add    $0xfffffffffffffffc,%rbx
lea    (%r15,%r13,4),%r15
cmp    %r15,%rbx
jbe    152e <bioR1__3d+0x42e>
nopw   0x0(%rax,%rax,1)
movss  (%r12),%xmm4
mulss  %xmm3,%xmm4
add    $0xfffffffffffffffc,%r12
movss  %xmm4,(%rbx)
movss  (%rax),%xmm4
mulss  %xmm0,%xmm4
add    $0xfffffffffffffffc,%rax
movss  %xmm4,-0x4(%rbx)
add    $0xfffffffffffffff8,%rbx
cmp    %r15,%rbx
ja     16a0 <bioR1__3d+0x5a0>
jmp    152e <bioR1__3d+0x42e>

LLVM IR (-O0):
define void @bioR1__3d(float* %0, float* %1, float* %2, float* %3, float* %4, float* %5, float* %6, float* %7, float* %8, i32 %9, i32 %10, i32 %11, double %12, double %13) {
%15 = alloca float*
%16 = alloca float*
%17 = alloca float*
%18 = alloca float*
%19 = alloca float*
%20 = alloca float*
%21 = alloca float*
%22 = alloca float*
%23 = alloca float*
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca float
%28 = alloca float
%29 = alloca float*
%30 = alloca float*
%31 = alloca float*
%32 = alloca float*
%33 = alloca float*
%34 = alloca float*
%35 = alloca float*
%36 = alloca float*
%37 = alloca float*
%38 = alloca float*
%39 = alloca float*
%40 = alloca float
%41 = alloca float
%42 = alloca float
%43 = alloca float
%44 = alloca i32
%45 = fptrunc double %12 to float
%46 = fptrunc double %13 to float
store float* %0, float** %15
store float* %1, float** %16
store float* %2, float** %17
store float* %3, float** %18
store float* %4, float** %19
store float* %5, float** %20
store float* %6, float** %21
store float* %7, float** %22
store float* %8, float** %23
store i32 %9, i32* %24
store i32 %10, i32* %25
store i32 %11, i32* %26
store float %45, float* %27
store float %46, float* %28
%47 = load i32, i32* %24
%48 = icmp sgt i32 %47, 1
%49 = zext i1 %48 to i32
%50 = load i32, i32* %25
%51 = icmp sgt i32 %50, 1
%52 = zext i1 %51 to i32
%53 = add nsw i32 %49, %52
%54 = load i32, i32* %26
%55 = icmp sgt i32 %54, 1
%56 = zext i1 %55 to i32
%57 = add nsw i32 %53, %56
store i32 %57, i32* %44
%58 = load i32, i32* %44
%59 = icmp eq i32 %58, 3
br i1 %59, label %60, label %71
60: ; preds = %14
%61 = load float, float* %27
%62 = load float, float* %28
%63 = fmul float %61, %62
store float %63, float* %40
%64 = load float, float* %28
store float %64, float* %41
%65 = load float, float* %28
%66 = load float, float* %27
%67 = fdiv float %65, %66
store float %67, float* %42
%68 = load float, float* %42
%69 = load float, float* %27
%70 = fdiv float %68, %69
store float %70, float* %43
br label %71
71: ; preds = %60, %14
%72 = load i32, i32* %44
%73 = icmp eq i32 %72, 2
br i1 %73, label %74, label %82
74: ; preds = %71
store float 0.000000e+00, float* %40
%75 = load float, float* %27
%76 = load float, float* %28
%77 = fmul float %75, %76
store float %77, float* %41
%78 = load float, float* %28
store float %78, float* %42
%79 = load float, float* %28
%80 = load float, float* %27
%81 = fdiv float %79, %80
store float %81, float* %43
br label %82
82: ; preds = %74, %71
%83 = load i32, i32* %44
%84 = icmp eq i32 %83, 1
br i1 %84, label %85, label %90
85: ; preds = %82
%86 = load float, float* %27
%87 = load float, float* %28
%88 = fmul float %86, %87
store float %88, float* %42
%89 = load float, float* %28
store float %89, float* %43
store float 0.000000e+00, float* %40
store float 0.000000e+00, float* %41
br label %90
90: ; preds = %85, %82
%91 = load i32, i32* %44
%92 = icmp eq i32 %91, 0
br i1 %92, label %93, label %97
93: ; preds = %90
store float 1.000000e+00, float* %27
store float 1.000000e+00, float* %28
%94 = load float, float* %27
%95 = load float, float* %28
%96 = fmul float %94, %95
store float %96, float* %43
store float 0.000000e+00, float* %40
store float 0.000000e+00, float* %41
store float 0.000000e+00, float* %42
br label %97
97: ; preds = %93, %90
%98 = load float*, float** %15
%99 = load i32, i32* %26
%100 = ashr i32 %99, 1
%101 = load i32, i32* %25
%102 = ashr i32 %101, 1
%103 = mul nsw i32 %100, %102
%104 = load i32, i32* %24
%105 = ashr i32 %104, 1
%106 = mul nsw i32 %103, %105
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds float, float* %98, i64 %107
%109 = getelementptr inbounds float, float* %108, i64 -1
store float* %109, float** %35
%110 = load float*, float** %19
%111 = load i32, i32* %26
%112 = add nsw i32 %111, 1
%113 = ashr i32 %112, 1
%114 = load i32, i32* %25
%115 = ashr i32 %114, 1
%116 = mul nsw i32 %113, %115
%117 = load i32, i32* %24
%118 = ashr i32 %117, 1
%119 = mul nsw i32 %116, %118
%120 = sext i32 %119 to i64
%121 = getelementptr inbounds float, float* %110, i64 %120
%122 = getelementptr inbounds float, float* %121, i64 -1
store float* %122, float** %39
%123 = load float*, float** %17
%124 = load i32, i32* %26
%125 = ashr i32 %124, 1
%126 = load i32, i32* %25
%127 = add nsw i32 %126, 1
%128 = ashr i32 %127, 1
%129 = mul nsw i32 %125, %128
%130 = load i32, i32* %24
%131 = ashr i32 %130, 1
%132 = mul nsw i32 %129, %131
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds float, float* %123, i64 %133
%135 = getelementptr inbounds float, float* %134, i64 -1
store float* %135, float** %33
%136 = load float*, float** %21
%137 = load i32, i32* %26
%138 = add nsw i32 %137, 1
%139 = ashr i32 %138, 1
%140 = load i32, i32* %25
%141 = add nsw i32 %140, 1
%142 = ashr i32 %141, 1
%143 = mul nsw i32 %139, %142
%144 = load i32, i32* %24
%145 = ashr i32 %144, 1
%146 = mul nsw i32 %143, %145
%147 = sext i32 %146 to i64
%148 = getelementptr inbounds float, float* %136, i64 %147
%149 = getelementptr inbounds float, float* %148, i64 -1
store float* %149, float** %37
%150 = load float*, float** %16
%151 = load i32, i32* %26
%152 = ashr i32 %151, 1
%153 = load i32, i32* %25
%154 = ashr i32 %153, 1
%155 = mul nsw i32 %152, %154
%156 = load i32, i32* %24
%157 = add nsw i32 %156, 1
%158 = ashr i32 %157, 1
%159 = mul nsw i32 %155, %158
%160 = sext i32 %159 to i64
%161 = getelementptr inbounds float, float* %150, i64 %160
%162 = getelementptr inbounds float, float* %161, i64 -1
store float* %162, float** %34
%163 = load float*, float** %20
%164 = load i32, i32* %26
%165 = add nsw i32 %164, 1
%166 = ashr i32 %165, 1
%167 = load i32, i32* %25
%168 = ashr i32 %167, 1
%169 = mul nsw i32 %166, %168
%170 = load i32, i32* %24
%171 = add nsw i32 %170, 1
%172 = ashr i32 %171, 1
%173 = mul nsw i32 %169, %172
%174 = sext i32 %173 to i64
%175 = getelementptr inbounds float, float* %163, i64 %174
%176 = getelementptr inbounds float, float* %175, i64 -1
store float* %176, float** %38
%177 = load float*, float** %18
%178 = load i32, i32* %26
%179 = ashr i32 %178, 1
%180 = load i32, i32* %25
%181 = add nsw i32 %180, 1
%182 = ashr i32 %181, 1
%183 = mul nsw i32 %179, %182
%184 = load i32, i32* %24
%185 = add nsw i32 %184, 1
%186 = ashr i32 %185, 1
%187 = mul nsw i32 %183, %186
%188 = sext i32 %187 to i64
%189 = getelementptr inbounds float, float* %177, i64 %188
%190 = getelementptr inbounds float, float* %189, i64 -1
store float* %190, float** %32
%191 = load float*, float** %22
%192 = load i32, i32* %26
%193 = add nsw i32 %192, 1
%194 = ashr i32 %193, 1
%195 = load i32, i32* %25
%196 = add nsw i32 %195, 1
%197 = ashr i32 %196, 1
%198 = mul nsw i32 %194, %197
%199 = load i32, i32* %24
%200 = add nsw i32 %199, 1
%201 = ashr i32 %200, 1
%202 = mul nsw i32 %198, %201
%203 = sext i32 %202 to i64
%204 = getelementptr inbounds float, float* %191, i64 %203
%205 = getelementptr inbounds float, float* %204, i64 -1
store float* %205, float** %36
%206 = load float*, float** %23
%207 = load i32, i32* %26
%208 = load i32, i32* %25
%209 = mul nsw i32 %207, %208
%210 = load i32, i32* %24
%211 = mul nsw i32 %209, %210
%212 = sext i32 %211 to i64
%213 = getelementptr inbounds float, float* %206, i64 %212
%214 = getelementptr inbounds float, float* %213, i64 -1
store float* %214, float** %29
%215 = load float*, float** %29
store float* %215, float** %31
%216 = load float*, float** %29
store float* %216, float** %30
%217 = load i32, i32* %26
%218 = and i32 1, %217
%219 = icmp ne i32 %218, 0
br i1 %219, label %220, label %350
220: ; preds = %97
%221 = load i32, i32* %24
%222 = load i32, i32* %25
%223 = mul nsw i32 %221, %222
%224 = load float*, float** %31
%225 = sext i32 %223 to i64
%226 = sub i64 0, %225
%227 = getelementptr inbounds float, float* %224, i64 %226
store float* %227, float** %31
%228 = load i32, i32* %25
%229 = and i32 1, %228
%230 = icmp ne i32 %229, 0
br i1 %230, label %231, label %269
231: ; preds = %220
%232 = load i32, i32* %24
%233 = load float*, float** %30
%234 = sext i32 %232 to i64
%235 = sub i64 0, %234
%236 = getelementptr inbounds float, float* %233, i64 %235
store float* %236, float** %30
%237 = load i32, i32* %24
%238 = and i32 1, %237
%239 = icmp ne i32 %238, 0
br i1 %239, label %240, label %248
240: ; preds = %231
%241 = load float, float* %43
%242 = load float*, float** %36
%243 = getelementptr inbounds float, float* %242, i32 -1
store float* %243, float** %36
%244 = load float, float* %242
%245 = fmul float %241, %244
%246 = load float*, float** %29
%247 = getelementptr inbounds float, float* %246, i32 -1
store float* %247, float** %29
store float %245, float* %246
br label %248
248: ; preds = %240, %231
br label %249
249: ; preds = %253, %248
%250 = load float*, float** %29
%251 = load float*, float** %30
%252 = icmp ugt float* %250, %251
br i1 %252, label %253, label %268
253: ; preds = %249
%254 = load float, float* %42
%255 = load float*, float** %37
%256 = getelementptr inbounds float, float* %255, i32 -1
store float* %256, float** %37
%257 = load float, float* %255
%258 = fmul float %254, %257
%259 = load float*, float** %29
%260 = getelementptr inbounds float, float* %259, i32 -1
store float* %260, float** %29
store float %258, float* %259
%261 = load float, float* %43
%262 = load float*, float** %36
%263 = getelementptr inbounds float, float* %262, i32 -1
store float* %263, float** %36
%264 = load float, float* %262
%265 = fmul float %261, %264
%266 = load float*, float** %29
%267 = getelementptr inbounds float, float* %266, i32 -1
store float* %267, float** %29
store float %265, float* %266
br label %249
268: ; preds = %249
br label %269
269: ; preds = %268, %220
br label %270
270: ; preds = %348, %269
%271 = load float*, float** %30
%272 = load float*, float** %31
%273 = icmp ugt float* %271, %272
br i1 %273, label %274, label %349
274: ; preds = %270
%275 = load i32, i32* %24
%276 = load float*, float** %30
%277 = sext i32 %275 to i64
%278 = sub i64 0, %277
%279 = getelementptr inbounds float, float* %276, i64 %278
store float* %279, float** %30
%280 = load i32, i32* %24
%281 = and i32 1, %280
%282 = icmp ne i32 %281, 0
br i1 %282, label %283, label %291
283: ; preds = %274
%284 = load float, float* %42
%285 = load float*, float** %38
%286 = getelementptr inbounds float, float* %285, i32 -1
store float* %286, float** %38
%287 = load float, float* %285
%288 = fmul float %284, %287
%289 = load float*, float** %29
%290 = getelementptr inbounds float, float* %289, i32 -1
store float* %290, float** %29
store float %288, float* %289
br label %291
291: ; preds = %283, %274
br label %292
292: ; preds = %296, %291
%293 = load float*, float** %29
%294 = load float*, float** %30
%295 = icmp ugt float* %293, %294
br i1 %295, label %296, label %311
296: ; preds = %292
%297 = load float, float* %41
%298 = load float*, float** %39
%299 = getelementptr inbounds float, float* %298, i32 -1
store float* %299, float** %39
%300 = load float, float* %298
%301 = fmul float %297, %300
%302 = load float*, float** %29
%303 = getelementptr inbounds float, float* %302, i32 -1
store float* %303, float** %29
store float %301, float* %302
%304 = load float, float* %42
%305 = load float*, float** %38
%306 = getelementptr inbounds float, float* %305, i32 -1
store float* %306, float** %38
%307 = load float, float* %305
%308 = fmul float %304, %307
%309 = load float*, float** %29
%310 = getelementptr inbounds float, float* %309, i32 -1
store float* %310, float** %29
store float %308, float* %309
br label %292
311: ; preds = %292
%312 = load i32, i32* %24
%313 = load float*, float** %30
%314 = sext i32 %312 to i64
%315 = sub i64 0, %314
%316 = getelementptr inbounds float, float* %313, i64 %315
store float* %316, float** %30
%317 = load i32, i32* %24
%318 = and i32 1, %317
%319 = icmp ne i32 %318, 0
br i1 %319, label %320, label %328
320: ; preds = %311
%321 = load float, float* %43
%322 = load float*, float** %36
%323 = getelementptr inbounds float, float* %322, i32 -1
store float* %323, float** %36
%324 = load float, float* %322
%325 = fmul float %321, %324
%326 = load float*, float** %29
%327 = getelementptr inbounds float, float* %326, i32 -1
store float* %327, float** %29
store float %325, float* %326
br label %328
328: ; preds = %320, %311
br label %329
329: ; preds = %333, %328
%330 = load float*, float** %29
%331 = load float*, float** %30
%332 = icmp ugt float* %330, %331
br i1 %332, label %333, label %348
333: ; preds = %329
%334 = load float, float* %42
%335 = load float*, float** %37
%336 = getelementptr inbounds float, float* %335, i32 -1
store float* %336, float** %37
%337 = load float, float* %335
%338 = fmul float %334, %337
%339 = load float*, float** %29
%340 = getelementptr inbounds float, float* %339, i32 -1
store float* %340, float** %29
store float %338, float* %339
%341 = load float, float* %43
%342 = load float*, float** %36
%343 = getelementptr inbounds float, float* %342, i32 -1
store float* %343, float** %36
%344 = load float, float* %342
%345 = fmul float %341, %344
%346 = load float*, float** %29
%347 = getelementptr inbounds float, float* %346, i32 -1
store float* %347, float** %29
store float %345, float* %346
br label %329
348: ; preds = %329
br label %270
349: ; preds = %270
br label %350
350: ; preds = %349, %97
br label %351
351: ; preds = %613, %350
%352 = load float*, float** %23
%353 = load float*, float** %31
%354 = icmp ule float* %352, %353
br i1 %354, label %355, label %614
355: ; preds = %351
%356 = load i32, i32* %24
%357 = load i32, i32* %25
%358 = mul nsw i32 %356, %357
%359 = load float*, float** %31
%360 = sext i32 %358 to i64
%361 = sub i64 0, %360
%362 = getelementptr inbounds float, float* %359, i64 %361
store float* %362, float** %31
%363 = load i32, i32* %25
%364 = and i32 1, %363
%365 = icmp ne i32 %364, 0
br i1 %365, label %366, label %404
366: ; preds = %355
%367 = load i32, i32* %24
%368 = load float*, float** %30
%369 = sext i32 %367 to i64
%370 = sub i64 0, %369
%371 = getelementptr inbounds float, float* %368, i64 %370
store float* %371, float** %30
%372 = load i32, i32* %24
%373 = and i32 1, %372
%374 = icmp ne i32 %373, 0
br i1 %374, label %375, label %383
375: ; preds = %366
%376 = load float, float* %42
%377 = load float*, float** %32
%378 = getelementptr inbounds float, float* %377, i32 -1
store float* %378, float** %32
%379 = load float, float* %377
%380 = fmul float %376, %379
%381 = load float*, float** %29
%382 = getelementptr inbounds float, float* %381, i32 -1
store float* %382, float** %29
store float %380, float* %381
br label %383
383: ; preds = %375, %366
br label %384
384: ; preds = %388, %383
%385 = load float*, float** %29
%386 = load float*, float** %30
%387 = icmp ugt float* %385, %386
br i1 %387, label %388, label %403
388: ; preds = %384
%389 = load float, float* %41
%390 = load float*, float** %33
%391 = getelementptr inbounds float, float* %390, i32 -1
store float* %391, float** %33
%392 = load float, float* %390
%393 = fmul float %389, %392
%394 = load float*, float** %29
%395 = getelementptr inbounds float, float* %394, i32 -1
store float* %395, float** %29
store float %393, float* %394
%396 = load float, float* %42
%397 = load float*, float** %32
%398 = getelementptr inbounds float, float* %397, i32 -1
store float* %398, float** %32
%399 = load float, float* %397
%400 = fmul float %396, %399
%401 = load float*, float** %29
%402 = getelementptr inbounds float, float* %401, i32 -1
store float* %402, float** %29
store float %400, float* %401
br label %384
403: ; preds = %384
br label %404
404: ; preds = %403, %355
br label %405
405: ; preds = %483, %404
%406 = load float*, float** %30
%407 = load float*, float** %31
%408 = icmp ugt float* %406, %407
br i1 %408, label %409, label %484
409: ; preds = %405
%410 = load i32, i32* %24
%411 = load float*, float** %30
%412 = sext i32 %410 to i64
%413 = sub i64 0, %412
%414 = getelementptr inbounds float, float* %411, i64 %413
store float* %414, float** %30
%415 = load i32, i32* %24
%416 = and i32 1, %415
%417 = icmp ne i32 %416, 0
br i1 %417, label %418, label %426
418: ; preds = %409
%419 = load float, float* %41
%420 = load float*, float** %34
%421 = getelementptr inbounds float, float* %420, i32 -1
store float* %421, float** %34
%422 = load float, float* %420
%423 = fmul float %419, %422
%424 = load float*, float** %29
%425 = getelementptr inbounds float, float* %424, i32 -1
store float* %425, float** %29
store float %423, float* %424
br label %426
426: ; preds = %418, %409
br label %427
427: ; preds = %431, %426
%428 = load float*, float** %29
%429 = load float*, float** %30
%430 = icmp ugt float* %428, %429
br i1 %430, label %431, label %446
431: ; preds = %427
%432 = load float, float* %40
%433 = load float*, float** %35
%434 = getelementptr inbounds float, float* %433, i32 -1
store float* %434, float** %35
%435 = load float, float* %433
%436 = fmul float %432, %435
%437 = load float*, float** %29
%438 = getelementptr inbounds float, float* %437, i32 -1
store float* %438, float** %29
store float %436, float* %437
%439 = load float, float* %41
%440 = load float*, float** %34
%441 = getelementptr inbounds float, float* %440, i32 -1
store float* %441, float** %34
%442 = load float, float* %440
%443 = fmul float %439, %442
%444 = load float*, float** %29
%445 = getelementptr inbounds float, float* %444, i32 -1
store float* %445, float** %29
store float %443, float* %444
br label %427
446: ; preds = %427
%447 = load i32, i32* %24
%448 = load float*, float** %30
%449 = sext i32 %447 to i64
%450 = sub i64 0, %449
%451 = getelementptr inbounds float, float* %448, i64 %450
store float* %451, float** %30
%452 = load i32, i32* %24
%453 = and i32 1, %452
%454 = icmp ne i32 %453, 0
br i1 %454, label %455, label %463
455: ; preds = %446
%456 = load float, float* %42
%457 = load float*, float** %32
%458 = getelementptr inbounds float, float* %457, i32 -1
store float* %458, float** %32
%459 = load float, float* %457
%460 = fmul float %456, %459
%461 = load float*, float** %29
%462 = getelementptr inbounds float, float* %461, i32 -1
store float* %462, float** %29
store float %460, float* %461
br label %463
463: ; preds = %455, %446
br label %464
464: ; preds = %468, %463
%465 = load float*, float** %29
%466 = load float*, float** %30
%467 = icmp ugt float* %465, %466
br i1 %467, label %468, label %483
468: ; preds = %464
%469 = load float, float* %41
%470 = load float*, float** %33
%471 = getelementptr inbounds float, float* %470, i32 -1
store float* %471, float** %33
%472 = load float, float* %470
%473 = fmul float %469, %472
%474 = load float*, float** %29
%475 = getelementptr inbounds float, float* %474, i32 -1
store float* %475, float** %29
store float %473, float* %474
%476 = load float, float* %42
%477 = load float*, float** %32
%478 = getelementptr inbounds float, float* %477, i32 -1
store float* %478, float** %32
%479 = load float, float* %477
%480 = fmul float %476, %479
%481 = load float*, float** %29
%482 = getelementptr inbounds float, float* %481, i32 -1
store float* %482, float** %29
store float %480, float* %481
br label %464
483: ; preds = %464
br label %405
484: ; preds = %405
%485 = load i32, i32* %24
%486 = load i32, i32* %25
%487 = mul nsw i32 %485, %486
%488 = load float*, float** %31
%489 = sext i32 %487 to i64
%490 = sub i64 0, %489
%491 = getelementptr inbounds float, float* %488, i64 %490
store float* %491, float** %31
%492 = load i32, i32* %25
%493 = and i32 1, %492
%494 = icmp ne i32 %493, 0
br i1 %494, label %495, label %533
495: ; preds = %484
%496 = load i32, i32* %24
%497 = load float*, float** %30
%498 = sext i32 %496 to i64
%499 = sub i64 0, %498
%500 = getelementptr inbounds float, float* %497, i64 %499
store float* %500, float** %30
%501 = load i32, i32* %24
%502 = and i32 1, %501
%503 = icmp ne i32 %502, 0
br i1 %503, label %504, label %512
504: ; preds = %495
%505 = load float, float* %43
%506 = load float*, float** %36
%507 = getelementptr inbounds float, float* %506, i32 -1
store float* %507, float** %36
%508 = load float, float* %506
%509 = fmul float %505, %508
%510 = load float*, float** %29
%511 = getelementptr inbounds float, float* %510, i32 -1
store float* %511, float** %29
store float %509, float* %510
br label %512
512: ; preds = %504, %495
br label %513
513: ; preds = %517, %512
%514 = load float*, float** %29
%515 = load float*, float** %30
%516 = icmp ugt float* %514, %515
br i1 %516, label %517, label %532
517: ; preds = %513
%518 = load float, float* %42
%519 = load float*, float** %37
%520 = getelementptr inbounds float, float* %519, i32 -1
store float* %520, float** %37
%521 = load float, float* %519
%522 = fmul float %518, %521
%523 = load float*, float** %29
%524 = getelementptr inbounds float, float* %523, i32 -1
store float* %524, float** %29
store float %522, float* %523
%525 = load float, float* %43
%526 = load float*, float** %36
%527 = getelementptr inbounds float, float* %526, i32 -1
store float* %527, float** %36
%528 = load float, float* %526
%529 = fmul float %525, %528
%530 = load float*, float** %29
%531 = getelementptr inbounds float, float* %530, i32 -1
store float* %531, float** %29
store float %529, float* %530
br label %513
532: ; preds = %513
br label %533
533: ; preds = %532, %484
br label %534
534: ; preds = %612, %533
%535 = load float*, float** %30
%536 = load float*, float** %31
%537 = icmp ugt float* %535, %536
br i1 %537, label %538, label %613
538: ; preds = %534
%539 = load i32, i32* %24
%540 = load float*, float** %30
%541 = sext i32 %539 to i64
%542 = sub i64 0, %541
%543 = getelementptr inbounds float, float* %540, i64 %542
store float* %543, float** %30
%544 = load i32, i32* %24
%545 = and i32 1, %544
%546 = icmp ne i32 %545, 0
br i1 %546, label %547, label %555
547: ; preds = %538
%548 = load float, float* %42
%549 = load float*, float** %38
%550 = getelementptr inbounds float, float* %549, i32 -1
store float* %550, float** %38
%551 = load float, float* %549
%552 = fmul float %548, %551
%553 = load float*, float** %29
%554 = getelementptr inbounds float, float* %553, i32 -1
store float* %554, float** %29
store float %552, float* %553
br label %555
555: ; preds = %547, %538
br label %556
556: ; preds = %560, %555
%557 = load float*, float** %29
%558 = load float*, float** %30
%559 = icmp ugt float* %557, %558
br i1 %559, label %560, label %575
560: ; preds = %556
%561 = load float, float* %41
%562 = load float*, float** %39
%563 = getelementptr inbounds float, float* %562, i32 -1
store float* %563, float** %39
%564 = load float, float* %562
%565 = fmul float %561, %564
%566 = load float*, float** %29
%567 = getelementptr inbounds float, float* %566, i32 -1
store float* %567, float** %29
store float %565, float* %566
%568 = load float, float* %42
%569 = load float*, float** %38
%570 = getelementptr inbounds float, float* %569, i32 -1
store float* %570, float** %38
%571 = load float, float* %569
%572 = fmul float %568, %571
%573 = load float*, float** %29
%574 = getelementptr inbounds float, float* %573, i32 -1
store float* %574, float** %29
store float %572, float* %573
br label %556
575: ; preds = %556
%576 = load i32, i32* %24
%577 = load float*, float** %30
%578 = sext i32 %576 to i64
%579 = sub i64 0, %578
%580 = getelementptr inbounds float, float* %577, i64 %579
store float* %580, float** %30
%581 = load i32, i32* %24
%582 = and i32 1, %581
%583 = icmp ne i32 %582, 0
br i1 %583, label %584, label %592
584: ; preds = %575
%585 = load float, float* %43
%586 = load float*, float** %36
%587 = getelementptr inbounds float, float* %586, i32 -1
store float* %587, float** %36
%588 = load float, float* %586
%589 = fmul float %585, %588
%590 = load float*, float** %29
%591 = getelementptr inbounds float, float* %590, i32 -1
store float* %591, float** %29
store float %589, float* %590
br label %592
592: ; preds = %584, %575
br label %593
593: ; preds = %597, %592
%594 = load float*, float** %29
%595 = load float*, float** %30
%596 = icmp ugt float* %594, %595
br i1 %596, label %597, label %612
597: ; preds = %593
%598 = load float, float* %42
%599 = load float*, float** %37
%600 = getelementptr inbounds float, float* %599, i32 -1
store float* %600, float** %37
%601 = load float, float* %599
%602 = fmul float %598, %601
%603 = load float*, float** %29
%604 = getelementptr inbounds float, float* %603, i32 -1
store float* %604, float** %29
store float %602, float* %603
%605 = load float, float* %43
%606 = load float*, float** %36
%607 = getelementptr inbounds float, float* %606, i32 -1
store float* %607, float** %36
%608 = load float, float* %606
%609 = fmul float %605, %608
%610 = load float*, float** %29
%611 = getelementptr inbounds float, float* %610, i32 -1
store float* %611, float** %29
store float %609, float* %610
br label %593
612: ; preds = %593
br label %534
613: ; preds = %534
br label %351
614: ; preds = %351
ret void
}

LLVM IR (-O2):
define void @bioR1__3d(float* nocapture %0, float* nocapture %1, float* nocapture %2, float* nocapture %3, float* nocapture %4, float* nocapture %5, float* nocapture %6, float* nocapture %7, float* writeonly %8, i32 %9, i32 %10, i32 %11, double %12, double %13) {
%15 = fptrunc double %12 to float
%16 = fptrunc double %13 to float
%17 = icmp sgt i32 %9, 1
%18 = zext i1 %17 to i32
%19 = icmp sgt i32 %10, 1
%20 = zext i1 %19 to i32
%21 = add nuw nsw i32 %20, %18
%22 = icmp sgt i32 %11, 1
%23 = zext i1 %22 to i32
%24 = add nuw nsw i32 %21, %23
switch i32 %24, label %34 [
i32 3, label %25
i32 2, label %29
i32 1, label %32
]
25: ; preds = %14
%26 = fmul float %15, %16
%27 = fdiv float %16, %15
%28 = fdiv float %27, %15
br label %34
29: ; preds = %14
%30 = fmul float %15, %16
%31 = fdiv float %16, %15
br label %34
32: ; preds = %14
%33 = fmul float %15, %16
br label %34
34: ; preds = %14, %29, %25, %32
%35 = phi float [ 0.000000e+00, %32 ], [ %26, %25 ], [ 0.000000e+00, %29 ], [ 0.000000e+00, %14 ]
%36 = phi float [ 0.000000e+00, %32 ], [ %16, %25 ], [ %30, %29 ], [ 0.000000e+00, %14 ]
%37 = phi float [ %33, %32 ], [ %27, %25 ], [ %16, %29 ], [ 0.000000e+00, %14 ]
%38 = phi float [ %16, %32 ], [ %28, %25 ], [ %31, %29 ], [ 1.000000e+00, %14 ]
%39 = ashr i32 %11, 1
%40 = ashr i32 %10, 1
%41 = mul nsw i32 %39, %40
%42 = ashr i32 %9, 1
%43 = mul nsw i32 %41, %42
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds float, float* %0, i64 %44
%46 = getelementptr inbounds float, float* %45, i64 -1
%47 = add nsw i32 %11, 1
%48 = ashr i32 %47, 1
%49 = mul nsw i32 %48, %40
%50 = mul nsw i32 %49, %42
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds float, float* %4, i64 %51
%53 = getelementptr inbounds float, float* %52, i64 -1
%54 = add nsw i32 %10, 1
%55 = ashr i32 %54, 1
%56 = mul nsw i32 %39, %55
%57 = mul nsw i32 %56, %42
%58 = sext i32 %57 to i64
%59 = getelementptr inbounds float, float* %2, i64 %58
%60 = getelementptr inbounds float, float* %59, i64 -1
%61 = mul nsw i32 %48, %55
%62 = mul nsw i32 %61, %42
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds float, float* %6, i64 %63
%65 = getelementptr inbounds float, float* %64, i64 -1
%66 = add nsw i32 %9, 1
%67 = ashr i32 %66, 1
%68 = mul nsw i32 %41, %67
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds float, float* %1, i64 %69
%71 = getelementptr inbounds float, float* %70, i64 -1
%72 = mul nsw i32 %49, %67
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds float, float* %5, i64 %73
%75 = getelementptr inbounds float, float* %74, i64 -1
%76 = mul nsw i32 %56, %67
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds float, float* %3, i64 %77
%79 = getelementptr inbounds float, float* %78, i64 -1
%80 = mul nsw i32 %61, %67
%81 = sext i32 %80 to i64
%82 = getelementptr inbounds float, float* %7, i64 %81
%83 = getelementptr inbounds float, float* %82, i64 -1
%84 = mul i32 %10, %9
%85 = mul i32 %84, %11
%86 = sext i32 %85 to i64
%87 = getelementptr inbounds float, float* %8, i64 %86
%88 = getelementptr inbounds float, float* %87, i64 -1
%89 = and i32 %11, 1
%90 = icmp eq i32 %89, 0
br i1 %90, label %198, label %91
91: ; preds = %34
%92 = sext i32 %84 to i64
%93 = sub nsw i64 0, %92
%94 = getelementptr inbounds float, float* %88, i64 %93
%95 = and i32 %10, 1
%96 = icmp eq i32 %95, 0
br i1 %96, label %125, label %97
97: ; preds = %91
%98 = sext i32 %9 to i64
%99 = sub nsw i64 0, %98
%100 = getelementptr inbounds float, float* %88, i64 %99
%101 = and i32 %9, 1
%102 = icmp eq i32 %101, 0
br i1 %102, label %108, label %103
103: ; preds = %97
%104 = getelementptr inbounds float, float* %83, i64 -1
%105 = load float, float* %83
%106 = fmul float %38, %105
%107 = getelementptr inbounds float, float* %88, i64 -1
store float %106, float* %88
br label %108
108: ; preds = %103, %97
%109 = phi float* [ %107, %103 ], [ %88, %97 ]
%110 = phi float* [ %104, %103 ], [ %83, %97 ]
%111 = icmp ugt float* %109, %100
br i1 %111, label %112, label %125
112: ; preds = %108, %112
%113 = phi float* [ %116, %112 ], [ %65, %108 ]
%114 = phi float* [ %120, %112 ], [ %110, %108 ]
%115 = phi float* [ %123, %112 ], [ %109, %108 ]
%116 = getelementptr inbounds float, float* %113, i64 -1
%117 = load float, float* %113
%118 = fmul float %37, %117
%119 = getelementptr inbounds float, float* %115, i64 -1
store float %118, float* %115
%120 = getelementptr inbounds float, float* %114, i64 -1
%121 = load float, float* %114
%122 = fmul float %38, %121
%123 = getelementptr inbounds float, float* %115, i64 -2
store float %122, float* %119
%124 = icmp ugt float* %123, %100
br i1 %124, label %112, label %125
125: ; preds = %112, %108, %91
%126 = phi float* [ %88, %91 ], [ %109, %108 ], [ %123, %112 ]
%127 = phi float* [ %88, %91 ], [ %100, %108 ], [ %100, %112 ]
%128 = phi float* [ %83, %91 ], [ %110, %108 ], [ %120, %112 ]
%129 = phi float* [ %65, %91 ], [ %65, %108 ], [ %116, %112 ]
%130 = icmp ugt float* %127, %94
br i1 %130, label %131, label %198
131: ; preds = %125
%132 = sext i32 %9 to i64
%133 = sub nsw i64 0, %132
%134 = and i32 %9, 1
%135 = icmp eq i32 %134, 0
br label %141
136: ; preds = %185, %181
%137 = phi float* [ %182, %181 ], [ %196, %185 ]
%138 = phi float* [ %183, %181 ], [ %193, %185 ]
%139 = phi float* [ %144, %181 ], [ %189, %185 ]
%140 = icmp ugt float* %175, %94
br i1 %140, label %141, label %198
141: ; preds = %131, %136
%142 = phi float* [ %53, %131 ], [ %174, %136 ]
%143 = phi float* [ %75, %131 ], [ %173, %136 ]
%144 = phi float* [ %129, %131 ], [ %139, %136 ]
%145 = phi float* [ %128, %131 ], [ %138, %136 ]
%146 = phi float* [ %127, %131 ], [ %175, %136 ]
%147 = phi float* [ %126, %131 ], [ %137, %136 ]
%148 = getelementptr inbounds float, float* %146, i64 %133
br i1 %135, label %154, label %149
149: ; preds = %141
%150 = getelementptr inbounds float, float* %143, i64 -1
%151 = load float, float* %143
%152 = fmul float %37, %151
%153 = getelementptr inbounds float, float* %147, i64 -1
store float %152, float* %147
br label %154
154: ; preds = %149, %141
%155 = phi float* [ %153, %149 ], [ %147, %141 ]
%156 = phi float* [ %150, %149 ], [ %143, %141 ]
%157 = icmp ugt float* %155, %148
br i1 %157, label %158, label %171
158: ; preds = %154, %158
%159 = phi float* [ %162, %158 ], [ %142, %154 ]
%160 = phi float* [ %166, %158 ], [ %156, %154 ]
%161 = phi float* [ %169, %158 ], [ %155, %154 ]
%162 = getelementptr inbounds float, float* %159, i64 -1
%163 = load float, float* %159
%164 = fmul float %36, %163
%165 = getelementptr inbounds float, float* %161, i64 -1
store float %164, float* %161
%166 = getelementptr inbounds float, float* %160, i64 -1
%167 = load float, float* %160
%168 = fmul float %37, %167
%169 = getelementptr inbounds float, float* %161, i64 -2
store float %168, float* %165
%170 = icmp ugt float* %169, %148
br i1 %170, label %158, label %171
171: ; preds = %158, %154
%172 = phi float* [ %155, %154 ], [ %169, %158 ]
%173 = phi float* [ %156, %154 ], [ %166, %158 ]
%174 = phi float* [ %142, %154 ], [ %162, %158 ]
%175 = getelementptr inbounds float, float* %148, i64 %133
br i1 %135, label %181, label %176
176: ; preds = %171
%177 = getelementptr inbounds float, float* %145, i64 -1
%178 = load float, float* %145
%179 = fmul float %38, %178
%180 = getelementptr inbounds float, float* %172, i64 -1
store float %179, float* %172
br label %181
181: ; preds = %176, %171
%182 = phi float* [ %180, %176 ], [ %172, %171 ]
%183 = phi float* [ %177, %176 ], [ %145, %171 ]
%184 = icmp ugt float* %182, %175
br i1 %184, label %185, label %136
185: ; preds = %181, %185
%186 = phi float* [ %189, %185 ], [ %144, %181 ]
%187 = phi float* [ %193, %185 ], [ %183, %181 ]
%188 = phi float* [ %196, %185 ], [ %182, %181 ]
%189 = getelementptr inbounds float, float* %186, i64 -1
%190 = load float, float* %186
%191 = fmul float %37, %190
%192 = getelementptr inbounds float, float* %188, i64 -1
store float %191, float* %188
%193 = getelementptr inbounds float, float* %187, i64 -1
%194 = load float, float* %187
%195 = fmul float %38, %194
%196 = getelementptr inbounds float, float* %188, i64 -2
store float %195, float* %192
%197 = icmp ugt float* %196, %175
br i1 %197, label %185, label %136
198: ; preds = %136, %125, %34
%199 = phi float* [ %88, %34 ], [ %126, %125 ], [ %137, %136 ]
%200 = phi float* [ %88, %34 ], [ %127, %125 ], [ %175, %136 ]
%201 = phi float* [ %88, %34 ], [ %94, %125 ], [ %94, %136 ]
%202 = phi float* [ %83, %34 ], [ %128, %125 ], [ %138, %136 ]
%203 = phi float* [ %65, %34 ], [ %129, %125 ], [ %139, %136 ]
%204 = phi float* [ %75, %34 ], [ %75, %125 ], [ %173, %136 ]
%205 = phi float* [ %53, %34 ], [ %53, %125 ], [ %174, %136 ]
%206 = icmp ult float* %201, %8
br i1 %206, label %429, label %207
207: ; preds = %198
%208 = sext i32 %84 to i64
%209 = sub nsw i64 0, %208
%210 = and i32 %10, 1
%211 = icmp eq i32 %210, 0
%212 = sext i32 %9 to i64
%213 = sub nsw i64 0, %212
%214 = and i32 %9, 1
%215 = icmp eq i32 %214, 0
br label %224
216: ; preds = %367, %361
%217 = phi float* [ %362, %361 ], [ %368, %367 ]
%218 = phi float* [ %363, %361 ], [ %406, %367 ]
%219 = phi float* [ %364, %361 ], [ %369, %367 ]
%220 = phi float* [ %365, %361 ], [ %370, %367 ]
%221 = phi float* [ %226, %361 ], [ %404, %367 ]
%222 = phi float* [ %225, %361 ], [ %405, %367 ]
%223 = icmp ult float* %336, %8
br i1 %223, label %429, label %224
224: ; preds = %207, %216
%225 = phi float* [ %205, %207 ], [ %222, %216 ]
%226 = phi float* [ %204, %207 ], [ %221, %216 ]
%227 = phi float* [ %203, %207 ], [ %220, %216 ]
%228 = phi float* [ %202, %207 ], [ %219, %216 ]
%229 = phi float* [ %46, %207 ], [ %335, %216 ]
%230 = phi float* [ %71, %207 ], [ %334, %216 ]
%231 = phi float* [ %60, %207 ], [ %333, %216 ]
%232 = phi float* [ %79, %207 ], [ %332, %216 ]
%233 = phi float* [ %201, %207 ], [ %336, %216 ]
%234 = phi float* [ %200, %207 ], [ %218, %216 ]
%235 = phi float* [ %199, %207 ], [ %217, %216 ]
%236 = getelementptr inbounds float, float* %233, i64 %209
br i1 %211, label %261, label %237
237: ; preds = %224
%238 = getelementptr inbounds float, float* %234, i64 %213
br i1 %215, label %244, label %239
239: ; preds = %237
%240 = getelementptr inbounds float, float* %232, i64 -1
%241 = load float, float* %232
%242 = fmul float %37, %241
%243 = getelementptr inbounds float, float* %235, i64 -1
store float %242, float* %235
br label %244
244: ; preds = %239, %237
%245 = phi float* [ %243, %239 ], [ %235, %237 ]
%246 = phi float* [ %240, %239 ], [ %232, %237 ]
%247 = icmp ugt float* %245, %238
br i1 %247, label %248, label %261
248: ; preds = %244, %248
%249 = phi float* [ %252, %248 ], [ %231, %244 ]
%250 = phi float* [ %256, %248 ], [ %246, %244 ]
%251 = phi float* [ %259, %248 ], [ %245, %244 ]
%252 = getelementptr inbounds float, float* %249, i64 -1
%253 = load float, float* %249
%254 = fmul float %36, %253
%255 = getelementptr inbounds float, float* %251, i64 -1
store float %254, float* %251
%256 = getelementptr inbounds float, float* %250, i64 -1
%257 = load float, float* %250
%258 = fmul float %37, %257
%259 = getelementptr inbounds float, float* %251, i64 -2
store float %258, float* %255
%260 = icmp ugt float* %259, %238
br i1 %260, label %248, label %261
261: ; preds = %248, %244, %224
%262 = phi float* [ %235, %224 ], [ %245, %244 ], [ %259, %248 ]
%263 = phi float* [ %234, %224 ], [ %238, %244 ], [ %238, %248 ]
%264 = phi float* [ %232, %224 ], [ %246, %244 ], [ %256, %248 ]
%265 = phi float* [ %231, %224 ], [ %231, %244 ], [ %252, %248 ]
%266 = icmp ugt float* %263, %236
br i1 %266, label %272, label %329
267: ; preds = %316, %312
%268 = phi float* [ %313, %312 ], [ %327, %316 ]
%269 = phi float* [ %314, %312 ], [ %324, %316 ]
%270 = phi float* [ %275, %312 ], [ %320, %316 ]
%271 = icmp ugt float* %306, %236
br i1 %271, label %272, label %329
272: ; preds = %261, %267
%273 = phi float* [ %305, %267 ], [ %229, %261 ]
%274 = phi float* [ %304, %267 ], [ %230, %261 ]
%275 = phi float* [ %270, %267 ], [ %265, %261 ]
%276 = phi float* [ %269, %267 ], [ %264, %261 ]
%277 = phi float* [ %306, %267 ], [ %263, %261 ]
%278 = phi float* [ %268, %267 ], [ %262, %261 ]
%279 = getelementptr inbounds float, float* %277, i64 %213
br i1 %215, label %285, label %280
280: ; preds = %272
%281 = getelementptr inbounds float, float* %274, i64 -1
%282 = load float, float* %274
%283 = fmul float %36, %282
%284 = getelementptr inbounds float, float* %278, i64 -1
store float %283, float* %278
br label %285
285: ; preds = %280, %272
%286 = phi float* [ %284, %280 ], [ %278, %272 ]
%287 = phi float* [ %281, %280 ], [ %274, %272 ]
%288 = icmp ugt float* %286, %279
br i1 %288, label %289, label %302
289: ; preds = %285, %289
%290 = phi float* [ %293, %289 ], [ %273, %285 ]
%291 = phi float* [ %297, %289 ], [ %287, %285 ]
%292 = phi float* [ %300, %289 ], [ %286, %285 ]
%293 = getelementptr inbounds float, float* %290, i64 -1
%294 = load float, float* %290
%295 = fmul float %35, %294
%296 = getelementptr inbounds float, float* %292, i64 -1
store float %295, float* %292
%297 = getelementptr inbounds float, float* %291, i64 -1
%298 = load float, float* %291
%299 = fmul float %36, %298
%300 = getelementptr inbounds float, float* %292, i64 -2
store float %299, float* %296
%301 = icmp ugt float* %300, %279
br i1 %301, label %289, label %302
302: ; preds = %289, %285
%303 = phi float* [ %286, %285 ], [ %300, %289 ]
%304 = phi float* [ %287, %285 ], [ %297, %289 ]
%305 = phi float* [ %273, %285 ], [ %293, %289 ]
%306 = getelementptr inbounds float, float* %279, i64 %213
br i1 %215, label %312, label %307
307: ; preds = %302
%308 = getelementptr inbounds float, float* %276, i64 -1
%309 = load float, float* %276
%310 = fmul float %37, %309
%311 = getelementptr inbounds float, float* %303, i64 -1
store float %310, float* %303
br label %312
312: ; preds = %307, %302
%313 = phi float* [ %311, %307 ], [ %303, %302 ]
%314 = phi float* [ %308, %307 ], [ %276, %302 ]
%315 = icmp ugt float* %313, %306
br i1 %315, label %316, label %267
316: ; preds = %312, %316
%317 = phi float* [ %320, %316 ], [ %275, %312 ]
%318 = phi float* [ %324, %316 ], [ %314, %312 ]
%319 = phi float* [ %327, %316 ], [ %313, %312 ]
%320 = getelementptr inbounds float, float* %317, i64 -1
%321 = load float, float* %317
%322 = fmul float %36, %321
%323 = getelementptr inbounds float, float* %319, i64 -1
store float %322, float* %319
%324 = getelementptr inbounds float, float* %318, i64 -1
%325 = load float, float* %318
%326 = fmul float %37, %325
%327 = getelementptr inbounds float, float* %319, i64 -2
store float %326, float* %323
%328 = icmp ugt float* %327, %306
br i1 %328, label %316, label %267
329: ; preds = %267, %261
%330 = phi float* [ %262, %261 ], [ %268, %267 ]
%331 = phi float* [ %263, %261 ], [ %306, %267 ]
%332 = phi float* [ %264, %261 ], [ %269, %267 ]
%333 = phi float* [ %265, %261 ], [ %270, %267 ]
%334 = phi float* [ %230, %261 ], [ %304, %267 ]
%335 = phi float* [ %229, %261 ], [ %305, %267 ]
%336 = getelementptr inbounds float, float* %236, i64 %209
br i1 %211, label %361, label %337
337: ; preds = %329
%338 = getelementptr inbounds float, float* %331, i64 %213
br i1 %215, label %344, label %339
339: ; preds = %337
%340 = getelementptr inbounds float, float* %228, i64 -1
%341 = load float, float* %228
%342 = fmul float %38, %341
%343 = getelementptr inbounds float, float* %330, i64 -1
store float %342, float* %330
br label %344
344: ; preds = %339, %337
%345 = phi float* [ %343, %339 ], [ %330, %337 ]
%346 = phi float* [ %340, %339 ], [ %228, %337 ]
%347 = icmp ugt float* %345, %338
br i1 %347, label %348, label %361
348: ; preds = %344, %348
%349 = phi float* [ %352, %348 ], [ %227, %344 ]
%350 = phi float* [ %356, %348 ], [ %346, %344 ]
%351 = phi float* [ %359, %348 ], [ %345, %344 ]
%352 = getelementptr inbounds float, float* %349, i64 -1
%353 = load float, float* %349
%354 = fmul float %37, %353
%355 = getelementptr inbounds float, float* %351, i64 -1
store float %354, float* %351
%356 = getelementptr inbounds float, float* %350, i64 -1
%357 = load float, float* %350
%358 = fmul float %38, %357
%359 = getelementptr inbounds float, float* %351, i64 -2
store float %358, float* %355
%360 = icmp ugt float* %359, %338
br i1 %360, label %348, label %361
361: ; preds = %348, %344, %329
%362 = phi float* [ %330, %329 ], [ %345, %344 ], [ %359, %348 ]
%363 = phi float* [ %331, %329 ], [ %338, %344 ], [ %338, %348 ]
%364 = phi float* [ %228, %329 ], [ %346, %344 ], [ %356, %348 ]
%365 = phi float* [ %227, %329 ], [ %227, %344 ], [ %352, %348 ]
%366 = icmp ugt float* %363, %336
br i1 %366, label %372, label %216
367: ; preds = %416, %412
%368 = phi float* [ %413, %412 ], [ %427, %416 ]
%369 = phi float* [ %414, %412 ], [ %424, %416 ]
%370 = phi float* [ %375, %412 ], [ %420, %416 ]
%371 = icmp ugt float* %406, %336
br i1 %371, label %372, label %216
372: ; preds = %361, %367
%373 = phi float* [ %405, %367 ], [ %225, %361 ]
%374 = phi float* [ %404, %367 ], [ %226, %361 ]
%375 = phi float* [ %370, %367 ], [ %365, %361 ]
%376 = phi float* [ %369, %367 ], [ %364, %361 ]
%377 = phi float* [ %406, %367 ], [ %363, %361 ]
%378 = phi float* [ %368, %367 ], [ %362, %361 ]
%379 = getelementptr inbounds float, float* %377, i64 %213
br i1 %215, label %385, label %380
380: ; preds = %372
%381 = getelementptr inbounds float, float* %374, i64 -1
%382 = load float, float* %374
%383 = fmul float %37, %382
%384 = getelementptr inbounds float, float* %378, i64 -1
store float %383, float* %378
br label %385
385: ; preds = %380, %372
%386 = phi float* [ %384, %380 ], [ %378, %372 ]
%387 = phi float* [ %381, %380 ], [ %374, %372 ]
%388 = icmp ugt float* %386, %379
br i1 %388, label %389, label %402
389: ; preds = %385, %389
%390 = phi float* [ %393, %389 ], [ %373, %385 ]
%391 = phi float* [ %397, %389 ], [ %387, %385 ]
%392 = phi float* [ %400, %389 ], [ %386, %385 ]
%393 = getelementptr inbounds float, float* %390, i64 -1
%394 = load float, float* %390
%395 = fmul float %36, %394
%396 = getelementptr inbounds float, float* %392, i64 -1
store float %395, float* %392
%397 = getelementptr inbounds float, float* %391, i64 -1
%398 = load float, float* %391
%399 = fmul float %37, %398
%400 = getelementptr inbounds float, float* %392, i64 -2
store float %399, float* %396
%401 = icmp ugt float* %400, %379
br i1 %401, label %389, label %402
402: ; preds = %389, %385
%403 = phi float* [ %386, %385 ], [ %400, %389 ]
%404 = phi float* [ %387, %385 ], [ %397, %389 ]
%405 = phi float* [ %373, %385 ], [ %393, %389 ]
%406 = getelementptr inbounds float, float* %379, i64 %213
br i1 %215, label %412, label %407
407: ; preds = %402
%408 = getelementptr inbounds float, float* %376, i64 -1
%409 = load float, float* %376
%410 = fmul float %38, %409
%411 = getelementptr inbounds float, float* %403, i64 -1
store float %410, float* %403
br label %412
412: ; preds = %407, %402
%413 = phi float* [ %411, %407 ], [ %403, %402 ]
%414 = phi float* [ %408, %407 ], [ %376, %402 ]
%415 = icmp ugt float* %413, %406
br i1 %415, label %416, label %367
416: ; preds = %412, %416
%417 = phi float* [ %420, %416 ], [ %375, %412 ]
%418 = phi float* [ %424, %416 ], [ %414, %412 ]
%419 = phi float* [ %427, %416 ], [ %413, %412 ]
%420 = getelementptr inbounds float, float* %417, i64 -1
%421 = load float, float* %417
%422 = fmul float %37, %421
%423 = getelementptr inbounds float, float* %419, i64 -1
store float %422, float* %419
%424 = getelementptr inbounds float, float* %418, i64 -1
%425 = load float, float* %418
%426 = fmul float %38, %425
%427 = getelementptr inbounds float, float* %419, i64 -2
store float %426, float* %423
%428 = icmp ugt float* %427, %406
br i1 %428, label %416, label %367
429: ; preds = %216, %198
ret void
}