void bioR7_3d(HHH, HHL, HLH, HLL, LHH, LHL, LLH, LLL, outvector, xlength,
              ylength, zlength, ifnotAllskip) float *HLL,
    *HLH, *HHL, *HHH;
float *LLL, *LLH, *LHL, *LHH;
float *outvector;
int xlength, ylength;
int ifnotAllskip;
{
  float ix0 = -0.2;
  float ix1 = 0.357142857136;
  float ix2 = -0.21;
  float iX0, iX1, iX2, iX3;
  int pairity;
  float Norm;
  int dim;
  dim = (xlength > 1) + (ylength > 1) + (zlength > 1);
  if (ifnotAllskip) {
    iX3 = ix2;
    iX2 = 1.0 / (ix2 * ix1);
    iX1 = 1.0 / (ix1 * ix0);
    iX0 = 1.0 / ix0;
  } else {
    iX3 = ix1;
    iX2 = 1.0;
    iX1 = 1.0 / (ix1 * ix0);
    iX0 = 1.0 / ix0;
  }
  if (dim == 3)
    Norm = 1.0 / (ix0 * ix1);
  if (dim == 2)
    Norm = 1.0;
  if (dim == 1)
    Norm = (ix0 * ix1);
  if (xlength > 1)
    Norm *= (0.98);
  if (ylength > 1)
    Norm *= (0.98);
  if (zlength > 1)
    Norm *= (0.98);
  if (dim == 0) {
    Norm = 1.0;
    iX0 = 1.0;
    iX1 = 1.0;
    iX2 = 1.0;
    iX3 = 1.0;
  }
  if (ifnotAllskip) {
    bioR1__3d(HHH, HHL, HLH, HLL, LHH, LHL, LLH, LLL, outvector, xlength,
              ylength, zlength, iX3, Norm);
    pairity = 0;
    bio_3d_postmult(outvector, xlength, ylength, zlength, iX2, pairity);
  } else
    bioR1_3dskip(LLL, outvector, xlength, ylength, zlength, iX3, Norm);
  pairity = 1;
  bio_3d_postmult(outvector, xlength, ylength, zlength, iX1, pairity);
  pairity = 0;
  bio_3d_postmult(outvector, xlength, ylength, zlength, iX0, pairity);
}


x86 assembly (clang, -O0):
<bioR7_3d>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %rbx
sub    $0x88,%rsp
mov    0x40(%rbp),%eax
mov    0x38(%rbp),%eax
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%eax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x20(%rbp)
mov    %rsi,-0x28(%rbp)
mov    %rdx,-0x30(%rbp)
mov    %rcx,-0x38(%rbp)
mov    %r8,-0x40(%rbp)
mov    %r9,-0x48(%rbp)
movss  0xe90(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0xe7f(%rip),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  0xe6e(%rip),%xmm0
movss  %xmm0,-0x54(%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,-0x70(%rbp)
cmpl   $0x0,0x40(%rbp)
je     1241 <bioR7_3d+0x111>
movss  -0x54(%rbp),%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x54(%rbp),%xmm0
mulss  -0x50(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xe22(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x50(%rbp),%xmm0
mulss  -0x4c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xdff(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x4c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xde1(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x58(%rbp)
jmp    1299 <bioR7_3d+0x169>
movss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x64(%rbp)
movss  0xdb9(%rip),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x50(%rbp),%xmm0
mulss  -0x4c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xda2(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x4c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd84(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x58(%rbp)
cmpl   $0x3,-0x70(%rbp)
jne    12c6 <bioR7_3d+0x196>
movss  -0x4c(%rbp),%xmm0
mulss  -0x50(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd57(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
cmpl   $0x2,-0x70(%rbp)
jne    12dd <bioR7_3d+0x1ad>
movss  0xd34(%rip),%xmm0
movss  %xmm0,-0x6c(%rbp)
cmpl   $0x1,-0x70(%rbp)
jne    12f6 <bioR7_3d+0x1c6>
movss  -0x4c(%rbp),%xmm0
mulss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x6c(%rbp)
cmpl   $0x1,0x28(%rbp)
jle    131e <bioR7_3d+0x1ee>
movss  -0x6c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xd07(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
cmpl   $0x1,0x30(%rbp)
jle    1346 <bioR7_3d+0x216>
movss  -0x6c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcdf(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
cmpl   $0x1,0x38(%rbp)
jle    136e <bioR7_3d+0x23e>
movss  -0x6c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcb7(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
cmpl   $0x0,-0x70(%rbp)
jne    13b9 <bioR7_3d+0x289>
movss  0xc8c(%rip),%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  0xc7f(%rip),%xmm0
movss  %xmm0,-0x58(%rbp)
movss  0xc72(%rip),%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  0xc65(%rip),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  0xc58(%rip),%xmm0
movss  %xmm0,-0x64(%rbp)
cmpl   $0x0,0x40(%rbp)
je     1454 <bioR7_3d+0x324>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
mov    -0x30(%rbp),%rdx
mov    -0x38(%rbp),%rcx
mov    -0x40(%rbp),%r8
mov    -0x48(%rbp),%r9
mov    0x10(%rbp),%r15
mov    0x18(%rbp),%r14
mov    0x20(%rbp),%rbx
mov    0x28(%rbp),%r11d
mov    0x30(%rbp),%r10d
mov    0x38(%rbp),%eax
movss  -0x64(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0x6c(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
mov    %r15,(%rsp)
mov    %r14,0x8(%rsp)
mov    %rbx,0x10(%rsp)
mov    %r11d,0x18(%rsp)
mov    %r10d,0x20(%rsp)
mov    %eax,0x28(%rsp)
mov    $0x2,%al
call   1030 <bioR1__3d@plt>
movl   $0x0,-0x68(%rbp)
mov    0x20(%rbp),%rdi
mov    0x28(%rbp),%esi
mov    0x30(%rbp),%edx
mov    0x38(%rbp),%ecx
movss  -0x60(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x68(%rbp),%r8d
mov    $0x1,%al
call   1040 <bio_3d_postmult@plt>
jmp    147f <bioR7_3d+0x34f>
mov    0x18(%rbp),%rdi
mov    0x20(%rbp),%rsi
mov    0x28(%rbp),%edx
mov    0x30(%rbp),%ecx
mov    0x38(%rbp),%r8d
movss  -0x64(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0x6c(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
mov    $0x2,%al
call   1050 <bioR1_3dskip@plt>
movl   $0x1,-0x68(%rbp)
mov    0x20(%rbp),%rdi
mov    0x28(%rbp),%esi
mov    0x30(%rbp),%edx
mov    0x38(%rbp),%ecx
movss  -0x5c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x68(%rbp),%r8d
mov    $0x1,%al
call   1040 <bio_3d_postmult@plt>
movl   $0x0,-0x68(%rbp)
mov    0x20(%rbp),%rdi
mov    0x28(%rbp),%esi
mov    0x30(%rbp),%edx
mov    0x38(%rbp),%ecx
movss  -0x58(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x68(%rbp),%r8d
mov    $0x1,%al
call   1040 <bio_3d_postmult@plt>
add    $0x88,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<bioR7_3d>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x20,%rsp
mov    0x78(%rsp),%r14d
mov    0x70(%rsp),%r15d
mov    0x68(%rsp),%r12d
xor    %ebp,%ebp
cmp    $0x2,%r12d
setge  %bpl
xor    %eax,%eax
cmp    $0x2,%r15d
setge  %al
add    %ebp,%eax
xor    %r10d,%r10d
cmp    $0x2,%r14d
setge  %r10b
lea    (%rax,%r10,1),%ebp
xor    %ebx,%ebx
cmp    $0x2,%ebp
sete   %r11b
cmp    $0x1,%ebp
je     118f <bioR7_3d+0x5f>
mov    %r11b,%bl
lea    0xe79(%rip),%rbp
movss  0x0(%rbp,%rbx,4),%xmm1
jmp    1197 <bioR7_3d+0x67>
movss  0xea1(%rip),%xmm1
movsd  0xe69(%rip),%xmm0
cmp    $0x2,%r12d
jl     11b1 <bioR7_3d+0x81>
cvtss2sd %xmm1,%xmm1
mulsd  %xmm0,%xmm1
cvtsd2ss %xmm1,%xmm1
cmp    $0x2,%r15d
jl     11c3 <bioR7_3d+0x93>
cvtss2sd %xmm1,%xmm1
mulsd  %xmm0,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    0x80(%rsp),%r11d
cmp    $0x2,%r14d
jl     11dd <bioR7_3d+0xad>
cvtss2sd %xmm1,%xmm1
mulsd  %xmm0,%xmm1
cvtsd2ss %xmm1,%xmm1
xor    %ebx,%ebx
test   %r11d,%r11d
sete   %bpl
add    %r10d,%eax
je     1224 <bioR7_3d+0xf4>
mov    %bpl,%bl
lea    0xe1b(%rip),%rax
movss  (%rax,%rbx,4),%xmm3
lea    0xe17(%rip),%rax
movss  (%rax,%rbx,4),%xmm0
movsd  0xe12(%rip),%xmm2
movsd  %xmm2,0x18(%rsp)
movsd  0xe0c(%rip),%xmm2
movsd  %xmm2,0x10(%rsp)
jmp    1246 <bioR7_3d+0x116>
movss  0xe10(%rip),%xmm3
movsd  0xdfc(%rip),%xmm2
movaps %xmm3,%xmm0
movaps %xmm3,%xmm1
movsd  %xmm2,0x10(%rsp)
movsd  %xmm2,0x18(%rsp)
mov    0x60(%rsp),%rbx
mov    0x58(%rsp),%r10
cvtss2sd %xmm0,%xmm0
cvtss2sd %xmm1,%xmm1
test   %r11d,%r11d
je     129d <bioR7_3d+0x16d>
mov    $0x2,%al
push   %r14
push   %r15
push   %r12
push   %rbx
push   %r10
push   0x78(%rsp)
movss  %xmm3,0x3c(%rsp)
call   1030 <bioR1__3d@plt>
add    $0x30,%rsp
movss  0xc(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %rbx,%rdi
mov    %r12d,%esi
mov    %r15d,%edx
mov    %r14d,%ecx
xor    %r8d,%r8d
mov    $0x1,%al
call   1040 <bio_3d_postmult@plt>
jmp    12b3 <bioR7_3d+0x183>
mov    %r10,%rdi
mov    %rbx,%rsi
mov    %r12d,%edx
mov    %r15d,%ecx
mov    %r14d,%r8d
mov    $0x2,%al
call   1050 <bioR1_3dskip@plt>
mov    %rbx,%rdi
mov    %r12d,%esi
mov    %r15d,%edx
mov    %r14d,%ecx
movsd  0x10(%rsp),%xmm0
mov    $0x1,%r8d
mov    $0x1,%al
call   1040 <bio_3d_postmult@plt>
mov    %rbx,%rdi
mov    %r12d,%esi
mov    %r15d,%edx
mov    %r14d,%ecx
movsd  0x18(%rsp),%xmm0
xor    %r8d,%r8d
mov    $0x1,%al
add    $0x20,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
jmp    1040 <bio_3d_postmult@plt>

LLVM IR (-O0):
define void @bioR7_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, i32 %12) {
%14 = alloca float*
%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 i32
%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 i32
%35 = alloca float
%36 = alloca i32
store float* %0, float** %14
store float* %1, float** %15
store float* %2, float** %16
store float* %3, float** %17
store float* %4, float** %18
store float* %5, float** %19
store float* %6, float** %20
store float* %7, float** %21
store float* %8, float** %22
store i32 %9, i32* %23
store i32 %10, i32* %24
store i32 %11, i32* %25
store i32 %12, i32* %26
store float 0xBFC99999A0000000, float* %27
store float 0x3FD6DB6DC0000000, float* %28
store float 0xBFCAE147A0000000, float* %29
%37 = load i32, i32* %23
%38 = icmp sgt i32 %37, 1
%39 = zext i1 %38 to i32
%40 = load i32, i32* %24
%41 = icmp sgt i32 %40, 1
%42 = zext i1 %41 to i32
%43 = add nsw i32 %39, %42
%44 = load i32, i32* %25
%45 = icmp sgt i32 %44, 1
%46 = zext i1 %45 to i32
%47 = add nsw i32 %43, %46
store i32 %47, i32* %36
%48 = load i32, i32* %26
%49 = icmp ne i32 %48, 0
br i1 %49, label %50, label %68
50: ; preds = %13
%51 = load float, float* %29
store float %51, float* %33
%52 = load float, float* %29
%53 = load float, float* %28
%54 = fmul float %52, %53
%55 = fpext float %54 to double
%56 = fdiv double 1.000000e+00, %55
%57 = fptrunc double %56 to float
store float %57, float* %32
%58 = load float, float* %28
%59 = load float, float* %27
%60 = fmul float %58, %59
%61 = fpext float %60 to double
%62 = fdiv double 1.000000e+00, %61
%63 = fptrunc double %62 to float
store float %63, float* %31
%64 = load float, float* %27
%65 = fpext float %64 to double
%66 = fdiv double 1.000000e+00, %65
%67 = fptrunc double %66 to float
store float %67, float* %30
br label %80
68: ; preds = %13
%69 = load float, float* %28
store float %69, float* %33
store float 1.000000e+00, float* %32
%70 = load float, float* %28
%71 = load float, float* %27
%72 = fmul float %70, %71
%73 = fpext float %72 to double
%74 = fdiv double 1.000000e+00, %73
%75 = fptrunc double %74 to float
store float %75, float* %31
%76 = load float, float* %27
%77 = fpext float %76 to double
%78 = fdiv double 1.000000e+00, %77
%79 = fptrunc double %78 to float
store float %79, float* %30
br label %80
80: ; preds = %68, %50
%81 = load i32, i32* %36
%82 = icmp eq i32 %81, 3
br i1 %82, label %83, label %90
83: ; preds = %80
%84 = load float, float* %27
%85 = load float, float* %28
%86 = fmul float %84, %85
%87 = fpext float %86 to double
%88 = fdiv double 1.000000e+00, %87
%89 = fptrunc double %88 to float
store float %89, float* %35
br label %90
90: ; preds = %83, %80
%91 = load i32, i32* %36
%92 = icmp eq i32 %91, 2
br i1 %92, label %93, label %94
93: ; preds = %90
store float 1.000000e+00, float* %35
br label %94
94: ; preds = %93, %90
%95 = load i32, i32* %36
%96 = icmp eq i32 %95, 1
br i1 %96, label %97, label %101
97: ; preds = %94
%98 = load float, float* %27
%99 = load float, float* %28
%100 = fmul float %98, %99
store float %100, float* %35
br label %101
101: ; preds = %97, %94
%102 = load i32, i32* %23
%103 = icmp sgt i32 %102, 1
br i1 %103, label %104, label %109
104: ; preds = %101
%105 = load float, float* %35
%106 = fpext float %105 to double
%107 = fmul double %106, 0x3FEF5C28F5C28F5C
%108 = fptrunc double %107 to float
store float %108, float* %35
br label %109
109: ; preds = %104, %101
%110 = load i32, i32* %24
%111 = icmp sgt i32 %110, 1
br i1 %111, label %112, label %117
112: ; preds = %109
%113 = load float, float* %35
%114 = fpext float %113 to double
%115 = fmul double %114, 0x3FEF5C28F5C28F5C
%116 = fptrunc double %115 to float
store float %116, float* %35
br label %117
117: ; preds = %112, %109
%118 = load i32, i32* %25
%119 = icmp sgt i32 %118, 1
br i1 %119, label %120, label %125
120: ; preds = %117
%121 = load float, float* %35
%122 = fpext float %121 to double
%123 = fmul double %122, 0x3FEF5C28F5C28F5C
%124 = fptrunc double %123 to float
store float %124, float* %35
br label %125
125: ; preds = %120, %117
%126 = load i32, i32* %36
%127 = icmp eq i32 %126, 0
br i1 %127, label %128, label %129
128: ; preds = %125
store float 1.000000e+00, float* %35
store float 1.000000e+00, float* %30
store float 1.000000e+00, float* %31
store float 1.000000e+00, float* %32
store float 1.000000e+00, float* %33
br label %129
129: ; preds = %128, %125
%130 = load i32, i32* %26
%131 = icmp ne i32 %130, 0
br i1 %131, label %132, label %158
132: ; preds = %129
%133 = load float*, float** %14
%134 = load float*, float** %15
%135 = load float*, float** %16
%136 = load float*, float** %17
%137 = load float*, float** %18
%138 = load float*, float** %19
%139 = load float*, float** %20
%140 = load float*, float** %21
%141 = load float*, float** %22
%142 = load i32, i32* %23
%143 = load i32, i32* %24
%144 = load i32, i32* %25
%145 = load float, float* %33
%146 = fpext float %145 to double
%147 = load float, float* %35
%148 = fpext float %147 to double
%149 = call i32 (float*, float*, float*, float*, float*, float*, float*, float*, float*, i32, i32, i32, double, double, ...) bitcast (i32 (...)* @bioR1__3d to i32 (float*, float*, float*, float*, float*, float*, float*, float*, float*, i32, i32, i32, double, double, ...)*)(float* %133, float* %134, float* %135, float* %136, float* %137, float* %138, float* %139, float* %140, float* %141, i32 %142, i32 %143, i32 %144, double %146, double %148)
store i32 0, i32* %34
%150 = load float*, float** %22
%151 = load i32, i32* %23
%152 = load i32, i32* %24
%153 = load i32, i32* %25
%154 = load float, float* %32
%155 = fpext float %154 to double
%156 = load i32, i32* %34
%157 = call i32 (float*, i32, i32, i32, double, i32, ...) bitcast (i32 (...)* @bio_3d_postmult to i32 (float*, i32, i32, i32, double, i32, ...)*)(float* %150, i32 %151, i32 %152, i32 %153, double %155, i32 %156)
br label %169
158: ; preds = %129
%159 = load float*, float** %21
%160 = load float*, float** %22
%161 = load i32, i32* %23
%162 = load i32, i32* %24
%163 = load i32, i32* %25
%164 = load float, float* %33
%165 = fpext float %164 to double
%166 = load float, float* %35
%167 = fpext float %166 to double
%168 = call i32 (float*, float*, i32, i32, i32, double, double, ...) bitcast (i32 (...)* @bioR1_3dskip to i32 (float*, float*, i32, i32, i32, double, double, ...)*)(float* %159, float* %160, i32 %161, i32 %162, i32 %163, double %165, double %167)
br label %169
169: ; preds = %158, %132
store i32 1, i32* %34
%170 = load float*, float** %22
%171 = load i32, i32* %23
%172 = load i32, i32* %24
%173 = load i32, i32* %25
%174 = load float, float* %31
%175 = fpext float %174 to double
%176 = load i32, i32* %34
%177 = call i32 (float*, i32, i32, i32, double, i32, ...) bitcast (i32 (...)* @bio_3d_postmult to i32 (float*, i32, i32, i32, double, i32, ...)*)(float* %170, i32 %171, i32 %172, i32 %173, double %175, i32 %176)
store i32 0, i32* %34
%178 = load float*, float** %22
%179 = load i32, i32* %23
%180 = load i32, i32* %24
%181 = load i32, i32* %25
%182 = load float, float* %30
%183 = fpext float %182 to double
%184 = load i32, i32* %34
%185 = call i32 (float*, i32, i32, i32, double, i32, ...) bitcast (i32 (...)* @bio_3d_postmult to i32 (float*, i32, i32, i32, double, i32, ...)*)(float* %178, i32 %179, i32 %180, i32 %181, double %183, i32 %184)
ret void
}

LLVM IR (-O2):
define void @bioR7_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, i32 %12) {
%14 = icmp sgt i32 %9, 1
%15 = zext i1 %14 to i32
%16 = icmp sgt i32 %10, 1
%17 = zext i1 %16 to i32
%18 = add nuw nsw i32 %17, %15
%19 = icmp sgt i32 %11, 1
%20 = zext i1 %19 to i32
%21 = add nuw nsw i32 %18, %20
%22 = icmp eq i32 %12, 0
%23 = select i1 %22, float 1.000000e+00, float 0xC02AAAAAA0000000
%24 = select i1 %22, float 0x3FD6DB6DC0000000, float 0xBFCAE147A0000000
%25 = icmp eq i32 %21, 2
%26 = select i1 %25, float 1.000000e+00, float 0xC02BFFFFE0000000
%27 = icmp eq i32 %21, 1
%28 = select i1 %27, float 0xBFB24924A0000000, float %26
%29 = fpext float %28 to double
%30 = fmul double %29, 0x3FEF5C28F5C28F5C
%31 = fptrunc double %30 to float
%32 = select i1 %14, float %31, float %28
%33 = fpext float %32 to double
%34 = fmul double %33, 0x3FEF5C28F5C28F5C
%35 = fptrunc double %34 to float
%36 = select i1 %16, float %35, float %32
%37 = fpext float %36 to double
%38 = fmul double %37, 0x3FEF5C28F5C28F5C
%39 = fptrunc double %38 to float
%40 = select i1 %19, float %39, float %36
%41 = icmp eq i32 %21, 0
br i1 %41, label %42, label %43
42: ; preds = %13
br label %43
43: ; preds = %42, %13
%44 = phi double [ 1.000000e+00, %42 ], [ 0xC02BFFFFE0000000, %13 ]
%45 = phi float [ 1.000000e+00, %42 ], [ %23, %13 ]
%46 = phi float [ 1.000000e+00, %42 ], [ %24, %13 ]
%47 = phi float [ 1.000000e+00, %42 ], [ %40, %13 ]
%48 = phi double [ 1.000000e+00, %42 ], [ -5.000000e+00, %13 ]
%49 = fpext float %46 to double
%50 = fpext float %47 to double
br i1 %22, label %55, label %51
51: ; preds = %43
%52 = tail call i32 (float*, float*, float*, float*, float*, float*, float*, float*, float*, i32, i32, i32, double, double, ...) bitcast (i32 (...)* @bioR1__3d to i32 (float*, float*, float*, float*, float*, float*, float*, float*, float*, i32, i32, i32, double, double, ...)*)(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 %49, double %50)
%53 = fpext float %45 to double
%54 = tail call i32 (float*, i32, i32, i32, double, i32, ...) bitcast (i32 (...)* @bio_3d_postmult to i32 (float*, i32, i32, i32, double, i32, ...)*)(float* %8, i32 %9, i32 %10, i32 %11, double %53, i32 0)
br label %57
55: ; preds = %43
%56 = tail call i32 (float*, float*, i32, i32, i32, double, double, ...) bitcast (i32 (...)* @bioR1_3dskip to i32 (float*, float*, i32, i32, i32, double, double, ...)*)(float* %7, float* %8, i32 %9, i32 %10, i32 %11, double %49, double %50)
br label %57
57: ; preds = %55, %51
%58 = tail call i32 (float*, i32, i32, i32, double, i32, ...) bitcast (i32 (...)* @bio_3d_postmult to i32 (float*, i32, i32, i32, double, i32, ...)*)(float* %8, i32 %9, i32 %10, i32 %11, double %44, i32 1)
%59 = tail call i32 (float*, i32, i32, i32, double, i32, ...) bitcast (i32 (...)* @bio_3d_postmult to i32 (float*, i32, i32, i32, double, i32, ...)*)(float* %8, i32 %9, i32 %10, i32 %11, double %48, i32 0)
ret void
}