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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double det3D(double *, double *, double *, double *);
void volumeRange3D(double *range, const double *yc, const double *m,
                   const int n) {
  const int m1 = m[0], m2 = m[1], m3 = m[2];
  double yA[3], yB[3], yC[3], yD[3], yE[3], yF[3], yG[3], yH[3], yABDC[3],
      yBDHF[3], yABFE[3], yCAEG[3], yDCGH[3], yEFHG[3], yM[3];
  double vol, mini = 1000.0, maxi = 0.0;
  int id, i1, i2, i3, r, comp, idn;
  const int nn = (m1 + 1) * (m2 + 1) * (m3 + 1);
  const int inc_x = 1;
  const int inc_y = m1 + 1;
  const int inc_z = (m1 + 1) * (m2 + 1);
  const double *rptr;
  for (i1 = 0; i1 < m1; i1++) {
    for (i2 = 0; i2 < m2; i2++) {
      for (i3 = 0; i3 < m3; i3++) {
        idn = i1 + i2 * inc_y + i3 * inc_z;
        comp = 0;
        for (r = 0; r < 3; r++) {
          rptr = yc + idn + comp;
          yA[r] = *rptr;
          rptr += inc_x;
          yB[r] = *rptr;
          rptr += inc_y;
          yD[r] = *rptr;
          rptr -= inc_x;
          yC[r] = *rptr;
          rptr += inc_z;
          yG[r] = *rptr;
          rptr += inc_x;
          yH[r] = *rptr;
          rptr -= inc_y;
          yF[r] = *rptr;
          rptr -= inc_x;
          yE[r] = *rptr;
          yABDC[r] = 0.25 * (yA[r] + yB[r] + yD[r] + yC[r]);
          yBDHF[r] = 0.25 * (yB[r] + yD[r] + yH[r] + yF[r]);
          yABFE[r] = 0.25 * (yA[r] + yB[r] + yF[r] + yE[r]);
          yCAEG[r] = 0.25 * (yC[r] + yA[r] + yE[r] + yG[r]);
          yDCGH[r] = 0.25 * (yD[r] + yC[r] + yG[r] + yH[r]);
          yEFHG[r] = 0.25 * (yE[r] + yF[r] + yH[r] + yG[r]);
          yM[r] = 0.5 * (yABDC[r] + yEFHG[r]);
          comp += nn;
        }
        vol = -det3D(yA, yB, yABDC, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = -det3D(yB, yD, yABDC, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = -det3D(yD, yC, yABDC, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = -det3D(yC, yA, yABDC, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yB, yD, yBDHF, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yD, yH, yBDHF, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yH, yF, yBDHF, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yF, yB, yBDHF, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yA, yB, yABFE, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yB, yF, yABFE, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yF, yE, yABFE, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yE, yA, yABFE, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yC, yA, yCAEG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yA, yE, yCAEG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yE, yG, yCAEG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yG, yC, yCAEG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yD, yC, yDCGH, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yC, yG, yDCGH, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yG, yH, yDCGH, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yH, yD, yDCGH, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yE, yF, yEFHG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yF, yH, yEFHG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yH, yG, yEFHG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
        vol = det3D(yG, yE, yEFHG, yM);
        if (mini > vol) {
          mini = vol;
        }
        if (maxi < vol) {
          maxi = vol;
        }
      }
    }
  }
  *range = mini;
  range++;
  *range = maxi;
  return;
}


x86 assembly (clang, -O0):
<volumeRange3D>:
push   %rbp
mov    %rsp,%rbp
sub    $0x250,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%eax
mov    %eax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
cvttsd2si 0x8(%rax),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%rax
cvttsd2si 0x10(%rax),%eax
mov    %eax,-0x28(%rbp)
movsd  0x1eab(%rip),%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    -0x24(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
mov    %eax,-0x238(%rbp)
movl   $0x1,-0x23c(%rbp)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x240(%rbp)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    -0x24(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
mov    %eax,-0x244(%rbp)
movl   $0x0,-0x220(%rbp)
mov    -0x220(%rbp),%eax
cmp    -0x20(%rbp),%eax
jge    221c <volumeRange3D+0x110c>
movl   $0x0,-0x224(%rbp)
mov    -0x224(%rbp),%eax
cmp    -0x24(%rbp),%eax
jge    2203 <volumeRange3D+0x10f3>
movl   $0x0,-0x228(%rbp)
mov    -0x228(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    21ea <volumeRange3D+0x10da>
mov    -0x220(%rbp),%eax
mov    -0x224(%rbp),%ecx
imul   -0x240(%rbp),%ecx
add    %ecx,%eax
mov    -0x228(%rbp),%ecx
imul   -0x244(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x234(%rbp)
movl   $0x0,-0x230(%rbp)
movl   $0x0,-0x22c(%rbp)
cmpl   $0x3,-0x22c(%rbp)
jge    1653 <volumeRange3D+0x543>
mov    -0x10(%rbp),%rax
movslq -0x234(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x230(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x40(%rbp,%rax,8)
mov    -0x250(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x60(%rbp,%rax,8)
mov    -0x240(%rbp),%ecx
mov    -0x250(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0xa0(%rbp,%rax,8)
ff ff
mov    -0x250(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x80(%rbp,%rax,8)
mov    -0x244(%rbp),%ecx
mov    -0x250(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x100(%rbp,%rax,8)
ff ff
mov    -0x250(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x120(%rbp,%rax,8)
ff ff
mov    -0x240(%rbp),%ecx
mov    -0x250(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0xe0(%rbp,%rax,8)
ff ff
mov    -0x250(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
movsd  (%rax),%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0xc0(%rbp,%rax,8)
ff ff
movslq -0x22c(%rbp),%rax
movsd  -0x40(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0x60(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0xa0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x80(%rbp,%rax,8),%xmm1
movsd  0x1bed(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x140(%rbp,%rax,8)
ff ff
movslq -0x22c(%rbp),%rax
movsd  -0x60(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0xa0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x120(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0xe0(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1b94(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x160(%rbp,%rax,8)
ff ff
movslq -0x22c(%rbp),%rax
movsd  -0x40(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0x60(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0xe0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0xc0(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1b3e(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x180(%rbp,%rax,8)
ff ff
movslq -0x22c(%rbp),%rax
movsd  -0x80(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0x40(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0xc0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x100(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1ae8(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x1a0(%rbp,%rax,8)
ff ff
movslq -0x22c(%rbp),%rax
movsd  -0xa0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x80(%rbp,%rax,8),%xmm1
movslq -0x22c(%rbp),%rax
addsd  -0x100(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x120(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1a8f(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x1c0(%rbp,%rax,8)
ff ff
movslq -0x22c(%rbp),%rax
movsd  -0xc0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0xe0(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x120(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x100(%rbp,%rax,8),%xmm1
ff ff
movsd  0x1a33(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x1e0(%rbp,%rax,8)
ff ff
movslq -0x22c(%rbp),%rax
movsd  -0x140(%rbp,%rax,8),%xmm1
ff ff
movslq -0x22c(%rbp),%rax
addsd  -0x1e0(%rbp,%rax,8),%xmm1
ff ff
movsd  0x19ef(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x22c(%rbp),%rax
movsd  %xmm0,-0x200(%rbp,%rax,8)
ff ff
mov    -0x238(%rbp),%eax
add    -0x230(%rbp),%eax
mov    %eax,-0x230(%rbp)
mov    -0x22c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x22c(%rbp)
jmp    123a <volumeRange3D+0x12a>
lea    -0x40(%rbp),%rdi
lea    -0x60(%rbp),%rsi
lea    -0x140(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    16b3 <volumeRange3D+0x5a3>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    16dd <volumeRange3D+0x5cd>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x60(%rbp),%rdi
lea    -0xa0(%rbp),%rsi
lea    -0x140(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1740 <volumeRange3D+0x630>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    176a <volumeRange3D+0x65a>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xa0(%rbp),%rdi
lea    -0x80(%rbp),%rsi
lea    -0x140(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    17cd <volumeRange3D+0x6bd>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    17f7 <volumeRange3D+0x6e7>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x80(%rbp),%rdi
lea    -0x40(%rbp),%rsi
lea    -0x140(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1857 <volumeRange3D+0x747>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1881 <volumeRange3D+0x771>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x60(%rbp),%rdi
lea    -0xa0(%rbp),%rsi
lea    -0x160(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    18cd <volumeRange3D+0x7bd>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    18f7 <volumeRange3D+0x7e7>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xa0(%rbp),%rdi
lea    -0x120(%rbp),%rsi
lea    -0x160(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1946 <volumeRange3D+0x836>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1970 <volumeRange3D+0x860>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x120(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
lea    -0x160(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    19bf <volumeRange3D+0x8af>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    19e9 <volumeRange3D+0x8d9>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xe0(%rbp),%rdi
lea    -0x60(%rbp),%rsi
lea    -0x160(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1a35 <volumeRange3D+0x925>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1a5f <volumeRange3D+0x94f>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x40(%rbp),%rdi
lea    -0x60(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1aa8 <volumeRange3D+0x998>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1ad2 <volumeRange3D+0x9c2>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x60(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1b1e <volumeRange3D+0xa0e>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1b48 <volumeRange3D+0xa38>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xe0(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1b97 <volumeRange3D+0xa87>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1bc1 <volumeRange3D+0xab1>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xc0(%rbp),%rdi
lea    -0x40(%rbp),%rsi
lea    -0x180(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1c0d <volumeRange3D+0xafd>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1c37 <volumeRange3D+0xb27>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x80(%rbp),%rdi
lea    -0x40(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1c80 <volumeRange3D+0xb70>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1caa <volumeRange3D+0xb9a>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x40(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1cf6 <volumeRange3D+0xbe6>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1d20 <volumeRange3D+0xc10>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xc0(%rbp),%rdi
lea    -0x100(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1d6f <volumeRange3D+0xc5f>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1d99 <volumeRange3D+0xc89>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x100(%rbp),%rdi
lea    -0x80(%rbp),%rsi
lea    -0x1a0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1de5 <volumeRange3D+0xcd5>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1e0f <volumeRange3D+0xcff>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xa0(%rbp),%rdi
lea    -0x80(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1e5b <volumeRange3D+0xd4b>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1e85 <volumeRange3D+0xd75>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x80(%rbp),%rdi
lea    -0x100(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1ed1 <volumeRange3D+0xdc1>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1efb <volumeRange3D+0xdeb>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x100(%rbp),%rdi
lea    -0x120(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1f4a <volumeRange3D+0xe3a>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1f74 <volumeRange3D+0xe64>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x120(%rbp),%rdi
lea    -0xa0(%rbp),%rsi
lea    -0x1c0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    1fc3 <volumeRange3D+0xeb3>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1fed <volumeRange3D+0xedd>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xc0(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    203c <volumeRange3D+0xf2c>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    2066 <volumeRange3D+0xf56>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0xe0(%rbp),%rdi
lea    -0x120(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    20b5 <volumeRange3D+0xfa5>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    20df <volumeRange3D+0xfcf>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x120(%rbp),%rdi
lea    -0x100(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    212e <volumeRange3D+0x101e>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    2158 <volumeRange3D+0x1048>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
lea    -0x100(%rbp),%rdi
lea    -0xc0(%rbp),%rsi
lea    -0x1e0(%rbp),%rdx
lea    -0x200(%rbp),%rcx
call   1030 <det3D@plt>
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
ucomisd -0x208(%rbp),%xmm0
ff
jbe    21a7 <volumeRange3D+0x1097>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x218(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    21d1 <volumeRange3D+0x10c1>
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
jmp    21d6 <volumeRange3D+0x10c6>
mov    -0x228(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x228(%rbp)
jmp    11ed <volumeRange3D+0xdd>
jmp    21ef <volumeRange3D+0x10df>
mov    -0x224(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x224(%rbp)
jmp    11d4 <volumeRange3D+0xc4>
jmp    2208 <volumeRange3D+0x10f8>
mov    -0x220(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x220(%rbp)
jmp    11bb <volumeRange3D+0xab>
movsd  -0x210(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x8(%rbp)
movsd  -0x218(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
add    $0x250,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<volumeRange3D>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x288,%rsp
mov    %rdi,0x100(%rsp)
cvttsd2si (%rdx),%eax
test   %eax,%eax
jle    1a17 <volumeRange3D+0x907>
cvttsd2si 0x8(%rdx),%ebp
cvttsd2si 0x10(%rdx),%ebx
lea    0x1(%rax),%ecx
lea    0x1(%rbp),%edx
imul   %ecx,%edx
lea    0x1(%rbx),%edi
imul   %edx,%edi
mov    %ecx,%ecx
movslq %edx,%rdx
movslq %edi,%r15
mov    %eax,%eax
mov    %rax,0x108(%rsp)
mov    %rbp,0x110(%rsp)
mov    %ebp,%eax
mov    %rax,0x120(%rsp)
mov    %rbx,0x128(%rsp)
mov    %ebx,%eax
mov    %rax,0x160(%rsp)
lea    0x0(,%rcx,8),%rax
mov    %rax,0x118(%rsp)
lea    0x0(,%rdx,8),%rax
mov    %rax,0x158(%rsp)
lea    (%rsi,%rcx,8),%rax
mov    %rax,0x48(%rsp)
add    %rdx,%rcx
lea    (%rsi,%rcx,8),%rax
mov    %rax,0x40(%rsp)
mov    %rsi,0x50(%rsp)
lea    (%rsi,%rdx,8),%rax
mov    %rax,0x38(%rsp)
xorpd  %xmm0,%xmm0
movsd  0xe2d(%rip),%xmm1
xor    %eax,%eax
mov    %rax,0x58(%rsp)
movsd  0xe25(%rip),%xmm10
movsd  0xe24(%rip),%xmm11
jmp    1227 <volumeRange3D+0x117>
xchg   %ax,%ax
mov    0x58(%rsp),%rcx
add    $0x1,%rcx
addq   $0x8,0x50(%rsp)
addq   $0x8,0x48(%rsp)
addq   $0x8,0x40(%rsp)
addq   $0x8,0x38(%rsp)
mov    %rcx,%rax
mov    %rcx,0x58(%rsp)
cmp    0x108(%rsp),%rcx
je     1a23 <volumeRange3D+0x913>
cmpl   $0x0,0x110(%rsp)
jle    11f0 <volumeRange3D+0xe0>
mov    0x38(%rsp),%r12
mov    0x40(%rsp),%rbx
mov    0x48(%rsp),%r14
mov    0x50(%rsp),%r13
xor    %ecx,%ecx
jmp    129e <volumeRange3D+0x18e>
nopl   0x0(%rax)
mov    0x130(%rsp),%rcx
add    $0x1,%rcx
mov    0x118(%rsp),%rax
mov    0x138(%rsp),%r13
add    %rax,%r13
mov    0x140(%rsp),%r14
add    %rax,%r14
mov    0x148(%rsp),%rbx
add    %rax,%rbx
mov    0x150(%rsp),%r12
add    %rax,%r12
cmp    0x120(%rsp),%rcx
je     11f0 <volumeRange3D+0xe0>
cmpl   $0x0,0x128(%rsp)
mov    %r12,0x150(%rsp)
mov    %rbx,0x148(%rsp)
mov    %r14,0x140(%rsp)
mov    %r13,0x138(%rsp)
mov    %rcx,0x130(%rsp)
jle    1250 <volumeRange3D+0x140>
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  %xmm1,(%rsp)
movsd  %xmm0,0x10(%rsp)
mov    %rcx,0x168(%rsp)
mov    $0x1,%eax
xor    %ecx,%ecx
nopw   0x0(%rax,%rax,1)
movsd  -0x8(%r13,%rax,8),%xmm5
movsd  %xmm5,0xe0(%rsp,%rcx,1)
movsd  0x0(%r13,%rax,8),%xmm1
movsd  %xmm1,0xc0(%rsp,%rcx,1)
movsd  (%r14,%rax,8),%xmm2
movsd  %xmm2,0x60(%rsp,%rcx,1)
movsd  -0x8(%r14,%rax,8),%xmm7
movsd  %xmm7,0xa0(%rsp,%rcx,1)
movsd  -0x8(%rbx,%rax,8),%xmm8
movsd  %xmm8,0x250(%rsp,%rcx,1)
movsd  (%rbx,%rax,8),%xmm9
movsd  %xmm9,0x80(%rsp,%rcx,1)
movsd  (%r12,%rax,8),%xmm0
movsd  %xmm0,0x210(%rsp,%rcx,1)
movsd  -0x8(%r12,%rax,8),%xmm6
movsd  %xmm6,0x230(%rsp,%rcx,1)
movapd %xmm5,%xmm4
addsd  %xmm1,%xmm4
movapd %xmm4,%xmm3
addsd  %xmm2,%xmm3
addsd  %xmm7,%xmm3
mulsd  %xmm10,%xmm3
movsd  %xmm3,0x270(%rsp,%rcx,1)
addsd  %xmm2,%xmm1
addsd  %xmm9,%xmm1
addsd  %xmm0,%xmm1
mulsd  %xmm10,%xmm1
movsd  %xmm1,0x1f0(%rsp,%rcx,1)
addsd  %xmm0,%xmm4
addsd  %xmm6,%xmm4
mulsd  %xmm10,%xmm4
movsd  %xmm4,0x1d0(%rsp,%rcx,1)
addsd  %xmm7,%xmm5
addsd  %xmm6,%xmm5
addsd  %xmm8,%xmm5
mulsd  %xmm10,%xmm5
movsd  %xmm5,0x1b0(%rsp,%rcx,1)
addsd  %xmm7,%xmm2
addsd  %xmm8,%xmm2
addsd  %xmm9,%xmm2
mulsd  %xmm10,%xmm2
movsd  %xmm2,0x190(%rsp,%rcx,1)
addsd  %xmm6,%xmm0
addsd  %xmm9,%xmm0
addsd  %xmm8,%xmm0
mulsd  %xmm10,%xmm0
movsd  %xmm0,0x170(%rsp,%rcx,1)
addsd  %xmm3,%xmm0
mulsd  %xmm11,%xmm0
movsd  %xmm0,0x20(%rsp,%rcx,1)
add    $0x8,%rcx
add    %r15,%rax
cmp    $0x18,%rcx
jne    1300 <volumeRange3D+0x1f0>
lea    0xe0(%rsp),%rdi
lea    0xc0(%rsp),%rsi
lea    0x270(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
movapd 0xbb0(%rip),%xmm0
xorpd  %xmm0,%xmm1
movapd %xmm1,%xmm0
minsd  (%rsp),%xmm0
movapd %xmm0,(%rsp)
maxsd  0x10(%rsp),%xmm1
movapd %xmm1,0x10(%rsp)
lea    0xc0(%rsp),%rdi
lea    0x60(%rsp),%rsi
lea    0x270(%rsp),%rbp
mov    %rbp,%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
xorpd  0xb68(%rip),%xmm0
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movapd %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movapd %xmm0,0x10(%rsp)
lea    0x60(%rsp),%rdi
lea    0xa0(%rsp),%rsi
mov    %rbp,%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
xorpd  0xb2c(%rip),%xmm0
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movapd %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movapd %xmm0,0x10(%rsp)
lea    0xa0(%rsp),%rdi
lea    0xe0(%rsp),%rsi
mov    %rbp,%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
xorpd  0xaed(%rip),%xmm0
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movapd %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movapd %xmm0,0x10(%rsp)
lea    0xc0(%rsp),%rdi
lea    0x60(%rsp),%rsi
lea    0x1f0(%rsp),%rdx
lea    0x20(%rsp),%rbp
mov    %rbp,%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x60(%rsp),%rdi
lea    0x80(%rsp),%rsi
lea    0x1f0(%rsp),%rdx
mov    %rbp,%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x80(%rsp),%rdi
lea    0x210(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1f0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0xc0(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1f0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0xe0(%rsp),%rdi
mov    %rbp,%rsi
lea    0x1d0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0xc0(%rsp),%rdi
lea    0x210(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1d0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0x230(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1d0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0xe0(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1d0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0xa0(%rsp),%rdi
mov    %rbp,%rsi
lea    0x1b0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0xe0(%rsp),%rdi
lea    0x230(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1b0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0x250(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1b0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0xa0(%rsp),%rbp
mov    %rbp,%rsi
lea    0x1b0(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x60(%rsp),%rdi
mov    %rbp,%rsi
lea    0x190(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0xa0(%rsp),%rdi
lea    0x250(%rsp),%rbp
mov    %rbp,%rsi
lea    0x190(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0x80(%rsp),%rbp
mov    %rbp,%rsi
lea    0x190(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0x60(%rsp),%rsi
lea    0x190(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x230(%rsp),%rdi
lea    0x210(%rsp),%rsi
lea    0x170(%rsp),%rdx
lea    0x20(%rsp),%rbp
mov    %rbp,%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x210(%rsp),%rdi
lea    0x80(%rsp),%rsi
lea    0x170(%rsp),%rdx
mov    %rbp,%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0x80(%rsp),%rdi
lea    0x250(%rsp),%rbp
mov    %rbp,%rsi
lea    0x170(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
movsd  %xmm1,(%rsp)
maxsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %rbp,%rdi
lea    0x230(%rsp),%rsi
lea    0x170(%rsp),%rdx
lea    0x20(%rsp),%rcx
call   1030 <det3D@plt>
movsd  0x644(%rip),%xmm11
movsd  0x633(%rip),%xmm10
movapd %xmm0,%xmm1
minsd  (%rsp),%xmm1
maxsd  0x10(%rsp),%xmm0
mov    0x168(%rsp),%rcx
add    $0x1,%rcx
mov    0x158(%rsp),%rax
add    %rax,%r13
add    %rax,%r14
add    %rax,%rbx
add    %rax,%r12
cmp    0x160(%rsp),%rcx
jne    12e0 <volumeRange3D+0x1d0>
jmp    1250 <volumeRange3D+0x140>
movsd  0x5e1(%rip),%xmm1
xorpd  %xmm0,%xmm0
mov    0x100(%rsp),%rax
movsd  %xmm1,(%rax)
movsd  %xmm0,0x8(%rax)
add    $0x288,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @volumeRange3D(double* %0, double* %1, double* %2, i32 %3) {
%5 = alloca double*
%6 = alloca double*
%7 = alloca double*
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca [3 x double]
%13 = alloca [3 x double]
%14 = alloca [3 x double]
%15 = alloca [3 x double]
%16 = alloca [3 x double]
%17 = alloca [3 x double]
%18 = alloca [3 x double]
%19 = alloca [3 x double]
%20 = alloca [3 x double]
%21 = alloca [3 x double]
%22 = alloca [3 x double]
%23 = alloca [3 x double]
%24 = alloca [3 x double]
%25 = alloca [3 x double]
%26 = alloca [3 x double]
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca double*
store double* %0, double** %5
store double* %1, double** %6
store double* %2, double** %7
store i32 %3, i32* %8
%42 = load double*, double** %7
%43 = getelementptr inbounds double, double* %42, i64 0
%44 = load double, double* %43
%45 = fptosi double %44 to i32
store i32 %45, i32* %9
%46 = load double*, double** %7
%47 = getelementptr inbounds double, double* %46, i64 1
%48 = load double, double* %47
%49 = fptosi double %48 to i32
store i32 %49, i32* %10
%50 = load double*, double** %7
%51 = getelementptr inbounds double, double* %50, i64 2
%52 = load double, double* %51
%53 = fptosi double %52 to i32
store i32 %53, i32* %11
store double 1.000000e+03, double* %28
store double 0.000000e+00, double* %29
%54 = load i32, i32* %9
%55 = add nsw i32 %54, 1
%56 = load i32, i32* %10
%57 = add nsw i32 %56, 1
%58 = mul nsw i32 %55, %57
%59 = load i32, i32* %11
%60 = add nsw i32 %59, 1
%61 = mul nsw i32 %58, %60
store i32 %61, i32* %37
store i32 1, i32* %38
%62 = load i32, i32* %9
%63 = add nsw i32 %62, 1
store i32 %63, i32* %39
%64 = load i32, i32* %9
%65 = add nsw i32 %64, 1
%66 = load i32, i32* %10
%67 = add nsw i32 %66, 1
%68 = mul nsw i32 %65, %67
store i32 %68, i32* %40
store i32 0, i32* %31
br label %69
69: ; preds = %743, %4
%70 = load i32, i32* %31
%71 = load i32, i32* %9
%72 = icmp slt i32 %70, %71
br i1 %72, label %73, label %746
73: ; preds = %69
store i32 0, i32* %32
br label %74
74: ; preds = %739, %73
%75 = load i32, i32* %32
%76 = load i32, i32* %10
%77 = icmp slt i32 %75, %76
br i1 %77, label %78, label %742
78: ; preds = %74
store i32 0, i32* %33
br label %79
79: ; preds = %735, %78
%80 = load i32, i32* %33
%81 = load i32, i32* %11
%82 = icmp slt i32 %80, %81
br i1 %82, label %83, label %738
83: ; preds = %79
%84 = load i32, i32* %31
%85 = load i32, i32* %32
%86 = load i32, i32* %39
%87 = mul nsw i32 %85, %86
%88 = add nsw i32 %84, %87
%89 = load i32, i32* %33
%90 = load i32, i32* %40
%91 = mul nsw i32 %89, %90
%92 = add nsw i32 %88, %91
store i32 %92, i32* %36
store i32 0, i32* %35
store i32 0, i32* %34
br label %93
93: ; preds = %319, %83
%94 = load i32, i32* %34
%95 = icmp slt i32 %94, 3
br i1 %95, label %96, label %322
96: ; preds = %93
%97 = load double*, double** %6
%98 = load i32, i32* %36
%99 = sext i32 %98 to i64
%100 = getelementptr inbounds double, double* %97, i64 %99
%101 = load i32, i32* %35
%102 = sext i32 %101 to i64
%103 = getelementptr inbounds double, double* %100, i64 %102
store double* %103, double** %41
%104 = load double*, double** %41
%105 = load double, double* %104
%106 = load i32, i32* %34
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 %107
store double %105, double* %108
%109 = load double*, double** %41
%110 = getelementptr inbounds double, double* %109, i64 1
store double* %110, double** %41
%111 = load double*, double** %41
%112 = load double, double* %111
%113 = load i32, i32* %34
%114 = sext i32 %113 to i64
%115 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 %114
store double %112, double* %115
%116 = load i32, i32* %39
%117 = load double*, double** %41
%118 = sext i32 %116 to i64
%119 = getelementptr inbounds double, double* %117, i64 %118
store double* %119, double** %41
%120 = load double*, double** %41
%121 = load double, double* %120
%122 = load i32, i32* %34
%123 = sext i32 %122 to i64
%124 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 %123
store double %121, double* %124
%125 = load double*, double** %41
%126 = getelementptr inbounds double, double* %125, i64 -1
store double* %126, double** %41
%127 = load double*, double** %41
%128 = load double, double* %127
%129 = load i32, i32* %34
%130 = sext i32 %129 to i64
%131 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 %130
store double %128, double* %131
%132 = load i32, i32* %40
%133 = load double*, double** %41
%134 = sext i32 %132 to i64
%135 = getelementptr inbounds double, double* %133, i64 %134
store double* %135, double** %41
%136 = load double*, double** %41
%137 = load double, double* %136
%138 = load i32, i32* %34
%139 = sext i32 %138 to i64
%140 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 %139
store double %137, double* %140
%141 = load double*, double** %41
%142 = getelementptr inbounds double, double* %141, i64 1
store double* %142, double** %41
%143 = load double*, double** %41
%144 = load double, double* %143
%145 = load i32, i32* %34
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 %146
store double %144, double* %147
%148 = load i32, i32* %39
%149 = load double*, double** %41
%150 = sext i32 %148 to i64
%151 = sub i64 0, %150
%152 = getelementptr inbounds double, double* %149, i64 %151
store double* %152, double** %41
%153 = load double*, double** %41
%154 = load double, double* %153
%155 = load i32, i32* %34
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 %156
store double %154, double* %157
%158 = load double*, double** %41
%159 = getelementptr inbounds double, double* %158, i64 -1
store double* %159, double** %41
%160 = load double*, double** %41
%161 = load double, double* %160
%162 = load i32, i32* %34
%163 = sext i32 %162 to i64
%164 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 %163
store double %161, double* %164
%165 = load i32, i32* %34
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 %166
%168 = load double, double* %167
%169 = load i32, i32* %34
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 %170
%172 = load double, double* %171
%173 = fadd double %168, %172
%174 = load i32, i32* %34
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 %175
%177 = load double, double* %176
%178 = fadd double %173, %177
%179 = load i32, i32* %34
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 %180
%182 = load double, double* %181
%183 = fadd double %178, %182
%184 = fmul double 2.500000e-01, %183
%185 = load i32, i32* %34
%186 = sext i32 %185 to i64
%187 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 %186
store double %184, double* %187
%188 = load i32, i32* %34
%189 = sext i32 %188 to i64
%190 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 %189
%191 = load double, double* %190
%192 = load i32, i32* %34
%193 = sext i32 %192 to i64
%194 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 %193
%195 = load double, double* %194
%196 = fadd double %191, %195
%197 = load i32, i32* %34
%198 = sext i32 %197 to i64
%199 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 %198
%200 = load double, double* %199
%201 = fadd double %196, %200
%202 = load i32, i32* %34
%203 = sext i32 %202 to i64
%204 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 %203
%205 = load double, double* %204
%206 = fadd double %201, %205
%207 = fmul double 2.500000e-01, %206
%208 = load i32, i32* %34
%209 = sext i32 %208 to i64
%210 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 %209
store double %207, double* %210
%211 = load i32, i32* %34
%212 = sext i32 %211 to i64
%213 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 %212
%214 = load double, double* %213
%215 = load i32, i32* %34
%216 = sext i32 %215 to i64
%217 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 %216
%218 = load double, double* %217
%219 = fadd double %214, %218
%220 = load i32, i32* %34
%221 = sext i32 %220 to i64
%222 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 %221
%223 = load double, double* %222
%224 = fadd double %219, %223
%225 = load i32, i32* %34
%226 = sext i32 %225 to i64
%227 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 %226
%228 = load double, double* %227
%229 = fadd double %224, %228
%230 = fmul double 2.500000e-01, %229
%231 = load i32, i32* %34
%232 = sext i32 %231 to i64
%233 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 %232
store double %230, double* %233
%234 = load i32, i32* %34
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 %235
%237 = load double, double* %236
%238 = load i32, i32* %34
%239 = sext i32 %238 to i64
%240 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 %239
%241 = load double, double* %240
%242 = fadd double %237, %241
%243 = load i32, i32* %34
%244 = sext i32 %243 to i64
%245 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 %244
%246 = load double, double* %245
%247 = fadd double %242, %246
%248 = load i32, i32* %34
%249 = sext i32 %248 to i64
%250 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 %249
%251 = load double, double* %250
%252 = fadd double %247, %251
%253 = fmul double 2.500000e-01, %252
%254 = load i32, i32* %34
%255 = sext i32 %254 to i64
%256 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 %255
store double %253, double* %256
%257 = load i32, i32* %34
%258 = sext i32 %257 to i64
%259 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 %258
%260 = load double, double* %259
%261 = load i32, i32* %34
%262 = sext i32 %261 to i64
%263 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 %262
%264 = load double, double* %263
%265 = fadd double %260, %264
%266 = load i32, i32* %34
%267 = sext i32 %266 to i64
%268 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 %267
%269 = load double, double* %268
%270 = fadd double %265, %269
%271 = load i32, i32* %34
%272 = sext i32 %271 to i64
%273 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 %272
%274 = load double, double* %273
%275 = fadd double %270, %274
%276 = fmul double 2.500000e-01, %275
%277 = load i32, i32* %34
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds [3 x double], [3 x double]* %24, i64 0, i64 %278
store double %276, double* %279
%280 = load i32, i32* %34
%281 = sext i32 %280 to i64
%282 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 %281
%283 = load double, double* %282
%284 = load i32, i32* %34
%285 = sext i32 %284 to i64
%286 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 %285
%287 = load double, double* %286
%288 = fadd double %283, %287
%289 = load i32, i32* %34
%290 = sext i32 %289 to i64
%291 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 %290
%292 = load double, double* %291
%293 = fadd double %288, %292
%294 = load i32, i32* %34
%295 = sext i32 %294 to i64
%296 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 %295
%297 = load double, double* %296
%298 = fadd double %293, %297
%299 = fmul double 2.500000e-01, %298
%300 = load i32, i32* %34
%301 = sext i32 %300 to i64
%302 = getelementptr inbounds [3 x double], [3 x double]* %25, i64 0, i64 %301
store double %299, double* %302
%303 = load i32, i32* %34
%304 = sext i32 %303 to i64
%305 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 %304
%306 = load double, double* %305
%307 = load i32, i32* %34
%308 = sext i32 %307 to i64
%309 = getelementptr inbounds [3 x double], [3 x double]* %25, i64 0, i64 %308
%310 = load double, double* %309
%311 = fadd double %306, %310
%312 = fmul double 5.000000e-01, %311
%313 = load i32, i32* %34
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 %314
store double %312, double* %315
%316 = load i32, i32* %37
%317 = load i32, i32* %35
%318 = add nsw i32 %317, %316
store i32 %318, i32* %35
br label %319
319: ; preds = %96
%320 = load i32, i32* %34
%321 = add nsw i32 %320, 1
store i32 %321, i32* %34
br label %93
322: ; preds = %93
%323 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 0
%324 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 0
%325 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%326 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%327 = call double @det3D(double* %323, double* %324, double* %325, double* %326)
%328 = fneg double %327
store double %328, double* %27
%329 = load double, double* %28
%330 = load double, double* %27
%331 = fcmp ogt double %329, %330
br i1 %331, label %332, label %334
332: ; preds = %322
%333 = load double, double* %27
store double %333, double* %28
br label %334
334: ; preds = %332, %322
%335 = load double, double* %29
%336 = load double, double* %27
%337 = fcmp olt double %335, %336
br i1 %337, label %338, label %340
338: ; preds = %334
%339 = load double, double* %27
store double %339, double* %29
br label %340
340: ; preds = %338, %334
%341 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 0
%342 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
%343 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%344 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%345 = call double @det3D(double* %341, double* %342, double* %343, double* %344)
%346 = fneg double %345
store double %346, double* %27
%347 = load double, double* %28
%348 = load double, double* %27
%349 = fcmp ogt double %347, %348
br i1 %349, label %350, label %352
350: ; preds = %340
%351 = load double, double* %27
store double %351, double* %28
br label %352
352: ; preds = %350, %340
%353 = load double, double* %29
%354 = load double, double* %27
%355 = fcmp olt double %353, %354
br i1 %355, label %356, label %358
356: ; preds = %352
%357 = load double, double* %27
store double %357, double* %29
br label %358
358: ; preds = %356, %352
%359 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
%360 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 0
%361 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%362 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%363 = call double @det3D(double* %359, double* %360, double* %361, double* %362)
%364 = fneg double %363
store double %364, double* %27
%365 = load double, double* %28
%366 = load double, double* %27
%367 = fcmp ogt double %365, %366
br i1 %367, label %368, label %370
368: ; preds = %358
%369 = load double, double* %27
store double %369, double* %28
br label %370
370: ; preds = %368, %358
%371 = load double, double* %29
%372 = load double, double* %27
%373 = fcmp olt double %371, %372
br i1 %373, label %374, label %376
374: ; preds = %370
%375 = load double, double* %27
store double %375, double* %29
br label %376
376: ; preds = %374, %370
%377 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 0
%378 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 0
%379 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%380 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%381 = call double @det3D(double* %377, double* %378, double* %379, double* %380)
%382 = fneg double %381
store double %382, double* %27
%383 = load double, double* %28
%384 = load double, double* %27
%385 = fcmp ogt double %383, %384
br i1 %385, label %386, label %388
386: ; preds = %376
%387 = load double, double* %27
store double %387, double* %28
br label %388
388: ; preds = %386, %376
%389 = load double, double* %29
%390 = load double, double* %27
%391 = fcmp olt double %389, %390
br i1 %391, label %392, label %394
392: ; preds = %388
%393 = load double, double* %27
store double %393, double* %29
br label %394
394: ; preds = %392, %388
%395 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 0
%396 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
%397 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%398 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%399 = call double @det3D(double* %395, double* %396, double* %397, double* %398)
store double %399, double* %27
%400 = load double, double* %28
%401 = load double, double* %27
%402 = fcmp ogt double %400, %401
br i1 %402, label %403, label %405
403: ; preds = %394
%404 = load double, double* %27
store double %404, double* %28
br label %405
405: ; preds = %403, %394
%406 = load double, double* %29
%407 = load double, double* %27
%408 = fcmp olt double %406, %407
br i1 %408, label %409, label %411
409: ; preds = %405
%410 = load double, double* %27
store double %410, double* %29
br label %411
411: ; preds = %409, %405
%412 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
%413 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 0
%414 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%415 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%416 = call double @det3D(double* %412, double* %413, double* %414, double* %415)
store double %416, double* %27
%417 = load double, double* %28
%418 = load double, double* %27
%419 = fcmp ogt double %417, %418
br i1 %419, label %420, label %422
420: ; preds = %411
%421 = load double, double* %27
store double %421, double* %28
br label %422
422: ; preds = %420, %411
%423 = load double, double* %29
%424 = load double, double* %27
%425 = fcmp olt double %423, %424
br i1 %425, label %426, label %428
426: ; preds = %422
%427 = load double, double* %27
store double %427, double* %29
br label %428
428: ; preds = %426, %422
%429 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 0
%430 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 0
%431 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%432 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%433 = call double @det3D(double* %429, double* %430, double* %431, double* %432)
store double %433, double* %27
%434 = load double, double* %28
%435 = load double, double* %27
%436 = fcmp ogt double %434, %435
br i1 %436, label %437, label %439
437: ; preds = %428
%438 = load double, double* %27
store double %438, double* %28
br label %439
439: ; preds = %437, %428
%440 = load double, double* %29
%441 = load double, double* %27
%442 = fcmp olt double %440, %441
br i1 %442, label %443, label %445
443: ; preds = %439
%444 = load double, double* %27
store double %444, double* %29
br label %445
445: ; preds = %443, %439
%446 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 0
%447 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 0
%448 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%449 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%450 = call double @det3D(double* %446, double* %447, double* %448, double* %449)
store double %450, double* %27
%451 = load double, double* %28
%452 = load double, double* %27
%453 = fcmp ogt double %451, %452
br i1 %453, label %454, label %456
454: ; preds = %445
%455 = load double, double* %27
store double %455, double* %28
br label %456
456: ; preds = %454, %445
%457 = load double, double* %29
%458 = load double, double* %27
%459 = fcmp olt double %457, %458
br i1 %459, label %460, label %462
460: ; preds = %456
%461 = load double, double* %27
store double %461, double* %29
br label %462
462: ; preds = %460, %456
%463 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 0
%464 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 0
%465 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%466 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%467 = call double @det3D(double* %463, double* %464, double* %465, double* %466)
store double %467, double* %27
%468 = load double, double* %28
%469 = load double, double* %27
%470 = fcmp ogt double %468, %469
br i1 %470, label %471, label %473
471: ; preds = %462
%472 = load double, double* %27
store double %472, double* %28
br label %473
473: ; preds = %471, %462
%474 = load double, double* %29
%475 = load double, double* %27
%476 = fcmp olt double %474, %475
br i1 %476, label %477, label %479
477: ; preds = %473
%478 = load double, double* %27
store double %478, double* %29
br label %479
479: ; preds = %477, %473
%480 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 0
%481 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 0
%482 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%483 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%484 = call double @det3D(double* %480, double* %481, double* %482, double* %483)
store double %484, double* %27
%485 = load double, double* %28
%486 = load double, double* %27
%487 = fcmp ogt double %485, %486
br i1 %487, label %488, label %490
488: ; preds = %479
%489 = load double, double* %27
store double %489, double* %28
br label %490
490: ; preds = %488, %479
%491 = load double, double* %29
%492 = load double, double* %27
%493 = fcmp olt double %491, %492
br i1 %493, label %494, label %496
494: ; preds = %490
%495 = load double, double* %27
store double %495, double* %29
br label %496
496: ; preds = %494, %490
%497 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 0
%498 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 0
%499 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%500 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%501 = call double @det3D(double* %497, double* %498, double* %499, double* %500)
store double %501, double* %27
%502 = load double, double* %28
%503 = load double, double* %27
%504 = fcmp ogt double %502, %503
br i1 %504, label %505, label %507
505: ; preds = %496
%506 = load double, double* %27
store double %506, double* %28
br label %507
507: ; preds = %505, %496
%508 = load double, double* %29
%509 = load double, double* %27
%510 = fcmp olt double %508, %509
br i1 %510, label %511, label %513
511: ; preds = %507
%512 = load double, double* %27
store double %512, double* %29
br label %513
513: ; preds = %511, %507
%514 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 0
%515 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 0
%516 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%517 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%518 = call double @det3D(double* %514, double* %515, double* %516, double* %517)
store double %518, double* %27
%519 = load double, double* %28
%520 = load double, double* %27
%521 = fcmp ogt double %519, %520
br i1 %521, label %522, label %524
522: ; preds = %513
%523 = load double, double* %27
store double %523, double* %28
br label %524
524: ; preds = %522, %513
%525 = load double, double* %29
%526 = load double, double* %27
%527 = fcmp olt double %525, %526
br i1 %527, label %528, label %530
528: ; preds = %524
%529 = load double, double* %27
store double %529, double* %29
br label %530
530: ; preds = %528, %524
%531 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 0
%532 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 0
%533 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
%534 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%535 = call double @det3D(double* %531, double* %532, double* %533, double* %534)
store double %535, double* %27
%536 = load double, double* %28
%537 = load double, double* %27
%538 = fcmp ogt double %536, %537
br i1 %538, label %539, label %541
539: ; preds = %530
%540 = load double, double* %27
store double %540, double* %28
br label %541
541: ; preds = %539, %530
%542 = load double, double* %29
%543 = load double, double* %27
%544 = fcmp olt double %542, %543
br i1 %544, label %545, label %547
545: ; preds = %541
%546 = load double, double* %27
store double %546, double* %29
br label %547
547: ; preds = %545, %541
%548 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 0
%549 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 0
%550 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
%551 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%552 = call double @det3D(double* %548, double* %549, double* %550, double* %551)
store double %552, double* %27
%553 = load double, double* %28
%554 = load double, double* %27
%555 = fcmp ogt double %553, %554
br i1 %555, label %556, label %558
556: ; preds = %547
%557 = load double, double* %27
store double %557, double* %28
br label %558
558: ; preds = %556, %547
%559 = load double, double* %29
%560 = load double, double* %27
%561 = fcmp olt double %559, %560
br i1 %561, label %562, label %564
562: ; preds = %558
%563 = load double, double* %27
store double %563, double* %29
br label %564
564: ; preds = %562, %558
%565 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 0
%566 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 0
%567 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
%568 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%569 = call double @det3D(double* %565, double* %566, double* %567, double* %568)
store double %569, double* %27
%570 = load double, double* %28
%571 = load double, double* %27
%572 = fcmp ogt double %570, %571
br i1 %572, label %573, label %575
573: ; preds = %564
%574 = load double, double* %27
store double %574, double* %28
br label %575
575: ; preds = %573, %564
%576 = load double, double* %29
%577 = load double, double* %27
%578 = fcmp olt double %576, %577
br i1 %578, label %579, label %581
579: ; preds = %575
%580 = load double, double* %27
store double %580, double* %29
br label %581
581: ; preds = %579, %575
%582 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 0
%583 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 0
%584 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
%585 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%586 = call double @det3D(double* %582, double* %583, double* %584, double* %585)
store double %586, double* %27
%587 = load double, double* %28
%588 = load double, double* %27
%589 = fcmp ogt double %587, %588
br i1 %589, label %590, label %592
590: ; preds = %581
%591 = load double, double* %27
store double %591, double* %28
br label %592
592: ; preds = %590, %581
%593 = load double, double* %29
%594 = load double, double* %27
%595 = fcmp olt double %593, %594
br i1 %595, label %596, label %598
596: ; preds = %592
%597 = load double, double* %27
store double %597, double* %29
br label %598
598: ; preds = %596, %592
%599 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
%600 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 0
%601 = getelementptr inbounds [3 x double], [3 x double]* %24, i64 0, i64 0
%602 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%603 = call double @det3D(double* %599, double* %600, double* %601, double* %602)
store double %603, double* %27
%604 = load double, double* %28
%605 = load double, double* %27
%606 = fcmp ogt double %604, %605
br i1 %606, label %607, label %609
607: ; preds = %598
%608 = load double, double* %27
store double %608, double* %28
br label %609
609: ; preds = %607, %598
%610 = load double, double* %29
%611 = load double, double* %27
%612 = fcmp olt double %610, %611
br i1 %612, label %613, label %615
613: ; preds = %609
%614 = load double, double* %27
store double %614, double* %29
br label %615
615: ; preds = %613, %609
%616 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 0
%617 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 0
%618 = getelementptr inbounds [3 x double], [3 x double]* %24, i64 0, i64 0
%619 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%620 = call double @det3D(double* %616, double* %617, double* %618, double* %619)
store double %620, double* %27
%621 = load double, double* %28
%622 = load double, double* %27
%623 = fcmp ogt double %621, %622
br i1 %623, label %624, label %626
624: ; preds = %615
%625 = load double, double* %27
store double %625, double* %28
br label %626
626: ; preds = %624, %615
%627 = load double, double* %29
%628 = load double, double* %27
%629 = fcmp olt double %627, %628
br i1 %629, label %630, label %632
630: ; preds = %626
%631 = load double, double* %27
store double %631, double* %29
br label %632
632: ; preds = %630, %626
%633 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 0
%634 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 0
%635 = getelementptr inbounds [3 x double], [3 x double]* %24, i64 0, i64 0
%636 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%637 = call double @det3D(double* %633, double* %634, double* %635, double* %636)
store double %637, double* %27
%638 = load double, double* %28
%639 = load double, double* %27
%640 = fcmp ogt double %638, %639
br i1 %640, label %641, label %643
641: ; preds = %632
%642 = load double, double* %27
store double %642, double* %28
br label %643
643: ; preds = %641, %632
%644 = load double, double* %29
%645 = load double, double* %27
%646 = fcmp olt double %644, %645
br i1 %646, label %647, label %649
647: ; preds = %643
%648 = load double, double* %27
store double %648, double* %29
br label %649
649: ; preds = %647, %643
%650 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 0
%651 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
%652 = getelementptr inbounds [3 x double], [3 x double]* %24, i64 0, i64 0
%653 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%654 = call double @det3D(double* %650, double* %651, double* %652, double* %653)
store double %654, double* %27
%655 = load double, double* %28
%656 = load double, double* %27
%657 = fcmp ogt double %655, %656
br i1 %657, label %658, label %660
658: ; preds = %649
%659 = load double, double* %27
store double %659, double* %28
br label %660
660: ; preds = %658, %649
%661 = load double, double* %29
%662 = load double, double* %27
%663 = fcmp olt double %661, %662
br i1 %663, label %664, label %666
664: ; preds = %660
%665 = load double, double* %27
store double %665, double* %29
br label %666
666: ; preds = %664, %660
%667 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 0
%668 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 0
%669 = getelementptr inbounds [3 x double], [3 x double]* %25, i64 0, i64 0
%670 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%671 = call double @det3D(double* %667, double* %668, double* %669, double* %670)
store double %671, double* %27
%672 = load double, double* %28
%673 = load double, double* %27
%674 = fcmp ogt double %672, %673
br i1 %674, label %675, label %677
675: ; preds = %666
%676 = load double, double* %27
store double %676, double* %28
br label %677
677: ; preds = %675, %666
%678 = load double, double* %29
%679 = load double, double* %27
%680 = fcmp olt double %678, %679
br i1 %680, label %681, label %683
681: ; preds = %677
%682 = load double, double* %27
store double %682, double* %29
br label %683
683: ; preds = %681, %677
%684 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 0
%685 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 0
%686 = getelementptr inbounds [3 x double], [3 x double]* %25, i64 0, i64 0
%687 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%688 = call double @det3D(double* %684, double* %685, double* %686, double* %687)
store double %688, double* %27
%689 = load double, double* %28
%690 = load double, double* %27
%691 = fcmp ogt double %689, %690
br i1 %691, label %692, label %694
692: ; preds = %683
%693 = load double, double* %27
store double %693, double* %28
br label %694
694: ; preds = %692, %683
%695 = load double, double* %29
%696 = load double, double* %27
%697 = fcmp olt double %695, %696
br i1 %697, label %698, label %700
698: ; preds = %694
%699 = load double, double* %27
store double %699, double* %29
br label %700
700: ; preds = %698, %694
%701 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 0
%702 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 0
%703 = getelementptr inbounds [3 x double], [3 x double]* %25, i64 0, i64 0
%704 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%705 = call double @det3D(double* %701, double* %702, double* %703, double* %704)
store double %705, double* %27
%706 = load double, double* %28
%707 = load double, double* %27
%708 = fcmp ogt double %706, %707
br i1 %708, label %709, label %711
709: ; preds = %700
%710 = load double, double* %27
store double %710, double* %28
br label %711
711: ; preds = %709, %700
%712 = load double, double* %29
%713 = load double, double* %27
%714 = fcmp olt double %712, %713
br i1 %714, label %715, label %717
715: ; preds = %711
%716 = load double, double* %27
store double %716, double* %29
br label %717
717: ; preds = %715, %711
%718 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 0
%719 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 0
%720 = getelementptr inbounds [3 x double], [3 x double]* %25, i64 0, i64 0
%721 = getelementptr inbounds [3 x double], [3 x double]* %26, i64 0, i64 0
%722 = call double @det3D(double* %718, double* %719, double* %720, double* %721)
store double %722, double* %27
%723 = load double, double* %28
%724 = load double, double* %27
%725 = fcmp ogt double %723, %724
br i1 %725, label %726, label %728
726: ; preds = %717
%727 = load double, double* %27
store double %727, double* %28
br label %728
728: ; preds = %726, %717
%729 = load double, double* %29
%730 = load double, double* %27
%731 = fcmp olt double %729, %730
br i1 %731, label %732, label %734
732: ; preds = %728
%733 = load double, double* %27
store double %733, double* %29
br label %734
734: ; preds = %732, %728
br label %735
735: ; preds = %734
%736 = load i32, i32* %33
%737 = add nsw i32 %736, 1
store i32 %737, i32* %33
br label %79
738: ; preds = %79
br label %739
739: ; preds = %738
%740 = load i32, i32* %32
%741 = add nsw i32 %740, 1
store i32 %741, i32* %32
br label %74
742: ; preds = %74
br label %743
743: ; preds = %742
%744 = load i32, i32* %31
%745 = add nsw i32 %744, 1
store i32 %745, i32* %31
br label %69
746: ; preds = %69
%747 = load double, double* %28
%748 = load double*, double** %5
store double %747, double* %748
%749 = load double*, double** %5
%750 = getelementptr inbounds double, double* %749, i32 1
store double* %750, double** %5
%751 = load double, double* %29
%752 = load double*, double** %5
store double %751, double* %752
ret void
}

LLVM IR (-O2):
define void @volumeRange3D(double* nocapture writeonly %0, double* nocapture %1, double* nocapture %2, i32 %3) {
%5 = alloca [3 x double]
%6 = alloca [3 x double]
%7 = alloca [3 x double]
%8 = alloca [3 x double]
%9 = alloca [3 x double]
%10 = alloca [3 x double]
%11 = alloca [3 x double]
%12 = alloca [3 x double]
%13 = alloca [3 x double]
%14 = alloca [3 x double]
%15 = alloca [3 x double]
%16 = alloca [3 x double]
%17 = alloca [3 x double]
%18 = alloca [3 x double]
%19 = alloca [3 x double]
%20 = load double, double* %2
%21 = fptosi double %20 to i32
%22 = getelementptr inbounds double, double* %2, i64 1
%23 = load double, double* %22
%24 = fptosi double %23 to i32
%25 = getelementptr inbounds double, double* %2, i64 2
%26 = load double, double* %25
%27 = fptosi double %26 to i32
%28 = bitcast [3 x double]* %5 to i8*
%29 = bitcast [3 x double]* %6 to i8*
%30 = bitcast [3 x double]* %7 to i8*
%31 = bitcast [3 x double]* %8 to i8*
%32 = bitcast [3 x double]* %9 to i8*
%33 = bitcast [3 x double]* %10 to i8*
%34 = bitcast [3 x double]* %11 to i8*
%35 = bitcast [3 x double]* %12 to i8*
%36 = bitcast [3 x double]* %13 to i8*
%37 = bitcast [3 x double]* %14 to i8*
%38 = bitcast [3 x double]* %15 to i8*
%39 = bitcast [3 x double]* %16 to i8*
%40 = bitcast [3 x double]* %17 to i8*
%41 = bitcast [3 x double]* %18 to i8*
%42 = bitcast [3 x double]* %19 to i8*
%43 = add nsw i32 %21, 1
%44 = add nsw i32 %24, 1
%45 = mul nsw i32 %44, %43
%46 = icmp sgt i32 %21, 0
br i1 %46, label %47, label %291
47: ; preds = %4
%48 = add nsw i32 %27, 1
%49 = mul i32 %45, %48
%50 = icmp sgt i32 %24, 0
%51 = icmp sgt i32 %27, 0
%52 = zext i32 %43 to i64
%53 = sext i32 %45 to i64
%54 = sub nsw i64 0, %52
%55 = getelementptr inbounds [3 x double], [3 x double]* %5, i64 0, i64 0
%56 = getelementptr inbounds [3 x double], [3 x double]* %6, i64 0, i64 0
%57 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 0
%58 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 0
%59 = getelementptr inbounds [3 x double], [3 x double]* %8, i64 0, i64 0
%60 = getelementptr inbounds [3 x double], [3 x double]* %7, i64 0, i64 0
%61 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 0
%62 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 0
%63 = getelementptr inbounds [3 x double], [3 x double]* %10, i64 0, i64 0
%64 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
%65 = getelementptr inbounds [3 x double], [3 x double]* %9, i64 0, i64 0
%66 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 0
%67 = getelementptr inbounds [3 x double], [3 x double]* %11, i64 0, i64 0
%68 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 0
%69 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 0
%70 = sext i32 %49 to i64
%71 = zext i32 %21 to i64
%72 = zext i32 %24 to i64
%73 = zext i32 %27 to i64
br label %74
74: ; preds = %47, %286
%75 = phi i64 [ 0, %47 ], [ %289, %286 ]
%76 = phi double [ 1.000000e+03, %47 ], [ %288, %286 ]
%77 = phi double [ 0.000000e+00, %47 ], [ %287, %286 ]
br i1 %50, label %78, label %286
78: ; preds = %74, %281
%79 = phi i64 [ %284, %281 ], [ 0, %74 ]
%80 = phi double [ %283, %281 ], [ %76, %74 ]
%81 = phi double [ %282, %281 ], [ %77, %74 ]
br i1 %51, label %82, label %281
82: ; preds = %78
%83 = mul nsw i64 %79, %52
%84 = add nuw nsw i64 %83, %75
br label %85
85: ; preds = %82, %154
%86 = phi i64 [ 0, %82 ], [ %279, %154 ]
%87 = phi double [ %80, %82 ], [ %276, %154 ]
%88 = phi double [ %81, %82 ], [ %278, %154 ]
%89 = mul nsw i64 %86, %53
%90 = add nsw i64 %84, %89
%91 = getelementptr inbounds double, double* %1, i64 %90
br label %92
92: ; preds = %85, %92
%93 = phi i64 [ 0, %85 ], [ %152, %92 ]
%94 = phi i64 [ 0, %85 ], [ %151, %92 ]
%95 = getelementptr inbounds double, double* %91, i64 %94
%96 = load double, double* %95
%97 = getelementptr inbounds [3 x double], [3 x double]* %5, i64 0, i64 %93
store double %96, double* %97
%98 = getelementptr inbounds double, double* %95, i64 1
%99 = load double, double* %98
%100 = getelementptr inbounds [3 x double], [3 x double]* %6, i64 0, i64 %93
store double %99, double* %100
%101 = getelementptr inbounds double, double* %98, i64 %52
%102 = load double, double* %101
%103 = getelementptr inbounds [3 x double], [3 x double]* %8, i64 0, i64 %93
store double %102, double* %103
%104 = getelementptr inbounds double, double* %101, i64 -1
%105 = load double, double* %104
%106 = getelementptr inbounds [3 x double], [3 x double]* %7, i64 0, i64 %93
store double %105, double* %106
%107 = getelementptr inbounds double, double* %104, i64 %53
%108 = load double, double* %107
%109 = getelementptr inbounds [3 x double], [3 x double]* %11, i64 0, i64 %93
store double %108, double* %109
%110 = getelementptr inbounds double, double* %107, i64 1
%111 = load double, double* %110
%112 = getelementptr inbounds [3 x double], [3 x double]* %12, i64 0, i64 %93
store double %111, double* %112
%113 = getelementptr inbounds double, double* %110, i64 %54
%114 = load double, double* %113
%115 = getelementptr inbounds [3 x double], [3 x double]* %10, i64 0, i64 %93
store double %114, double* %115
%116 = getelementptr inbounds double, double* %113, i64 -1
%117 = load double, double* %116
%118 = getelementptr inbounds [3 x double], [3 x double]* %9, i64 0, i64 %93
store double %117, double* %118
%119 = fadd double %96, %99
%120 = fadd double %119, %102
%121 = fadd double %120, %105
%122 = fmul double %121, 2.500000e-01
%123 = getelementptr inbounds [3 x double], [3 x double]* %13, i64 0, i64 %93
store double %122, double* %123
%124 = fadd double %99, %102
%125 = fadd double %124, %111
%126 = fadd double %125, %114
%127 = fmul double %126, 2.500000e-01
%128 = getelementptr inbounds [3 x double], [3 x double]* %14, i64 0, i64 %93
store double %127, double* %128
%129 = fadd double %119, %114
%130 = fadd double %129, %117
%131 = fmul double %130, 2.500000e-01
%132 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 %93
store double %131, double* %132
%133 = fadd double %96, %105
%134 = fadd double %133, %117
%135 = fadd double %108, %134
%136 = fmul double %135, 2.500000e-01
%137 = getelementptr inbounds [3 x double], [3 x double]* %16, i64 0, i64 %93
store double %136, double* %137
%138 = fadd double %102, %105
%139 = fadd double %138, %108
%140 = fadd double %139, %111
%141 = fmul double %140, 2.500000e-01
%142 = getelementptr inbounds [3 x double], [3 x double]* %17, i64 0, i64 %93
store double %141, double* %142
%143 = fadd double %114, %117
%144 = fadd double %111, %143
%145 = fadd double %108, %144
%146 = fmul double %145, 2.500000e-01
%147 = getelementptr inbounds [3 x double], [3 x double]* %18, i64 0, i64 %93
store double %146, double* %147
%148 = fadd double %122, %146
%149 = fmul double %148, 5.000000e-01
%150 = getelementptr inbounds [3 x double], [3 x double]* %19, i64 0, i64 %93
store double %149, double* %150
%151 = add nsw i64 %94, %70
%152 = add nuw nsw i64 %93, 1
%153 = icmp eq i64 %152, 3
br i1 %153, label %154, label %92
154: ; preds = %92
%155 = call double @det3D(double* %55, double* %56, double* %57, double* %58)
%156 = fneg double %155
%157 = fcmp ogt double %87, %156
%158 = select i1 %157, double %156, double %87
%159 = fcmp olt double %88, %156
%160 = select i1 %159, double %156, double %88
%161 = call double @det3D(double* %56, double* %59, double* %57, double* %58)
%162 = fneg double %161
%163 = fcmp ogt double %158, %162
%164 = select i1 %163, double %162, double %158
%165 = fcmp olt double %160, %162
%166 = select i1 %165, double %162, double %160
%167 = call double @det3D(double* %59, double* %60, double* %57, double* %58)
%168 = fneg double %167
%169 = fcmp ogt double %164, %168
%170 = select i1 %169, double %168, double %164
%171 = fcmp olt double %166, %168
%172 = select i1 %171, double %168, double %166
%173 = call double @det3D(double* %60, double* %55, double* %57, double* %58)
%174 = fneg double %173
%175 = fcmp ogt double %170, %174
%176 = select i1 %175, double %174, double %170
%177 = fcmp olt double %172, %174
%178 = select i1 %177, double %174, double %172
%179 = call double @det3D(double* %56, double* %59, double* %61, double* %58)
%180 = fcmp ogt double %176, %179
%181 = select i1 %180, double %179, double %176
%182 = fcmp olt double %178, %179
%183 = select i1 %182, double %179, double %178
%184 = call double @det3D(double* %59, double* %62, double* %61, double* %58)
%185 = fcmp ogt double %181, %184
%186 = select i1 %185, double %184, double %181
%187 = fcmp olt double %183, %184
%188 = select i1 %187, double %184, double %183
%189 = call double @det3D(double* %62, double* %63, double* %61, double* %58)
%190 = fcmp ogt double %186, %189
%191 = select i1 %190, double %189, double %186
%192 = fcmp olt double %188, %189
%193 = select i1 %192, double %189, double %188
%194 = call double @det3D(double* %63, double* %56, double* %61, double* %58)
%195 = fcmp ogt double %191, %194
%196 = select i1 %195, double %194, double %191
%197 = fcmp olt double %193, %194
%198 = select i1 %197, double %194, double %193
%199 = call double @det3D(double* %55, double* %56, double* %64, double* %58)
%200 = fcmp ogt double %196, %199
%201 = select i1 %200, double %199, double %196
%202 = fcmp olt double %198, %199
%203 = select i1 %202, double %199, double %198
%204 = call double @det3D(double* %56, double* %63, double* %64, double* %58)
%205 = fcmp ogt double %201, %204
%206 = select i1 %205, double %204, double %201
%207 = fcmp olt double %203, %204
%208 = select i1 %207, double %204, double %203
%209 = call double @det3D(double* %63, double* %65, double* %64, double* %58)
%210 = fcmp ogt double %206, %209
%211 = select i1 %210, double %209, double %206
%212 = fcmp olt double %208, %209
%213 = select i1 %212, double %209, double %208
%214 = call double @det3D(double* %65, double* %55, double* %64, double* %58)
%215 = fcmp ogt double %211, %214
%216 = select i1 %215, double %214, double %211
%217 = fcmp olt double %213, %214
%218 = select i1 %217, double %214, double %213
%219 = call double @det3D(double* %60, double* %55, double* %66, double* %58)
%220 = fcmp ogt double %216, %219
%221 = select i1 %220, double %219, double %216
%222 = fcmp olt double %218, %219
%223 = select i1 %222, double %219, double %218
%224 = call double @det3D(double* %55, double* %65, double* %66, double* %58)
%225 = fcmp ogt double %221, %224
%226 = select i1 %225, double %224, double %221
%227 = fcmp olt double %223, %224
%228 = select i1 %227, double %224, double %223
%229 = call double @det3D(double* %65, double* %67, double* %66, double* %58)
%230 = fcmp ogt double %226, %229
%231 = select i1 %230, double %229, double %226
%232 = fcmp olt double %228, %229
%233 = select i1 %232, double %229, double %228
%234 = call double @det3D(double* %67, double* %60, double* %66, double* %58)
%235 = fcmp ogt double %231, %234
%236 = select i1 %235, double %234, double %231
%237 = fcmp olt double %233, %234
%238 = select i1 %237, double %234, double %233
%239 = call double @det3D(double* %59, double* %60, double* %68, double* %58)
%240 = fcmp ogt double %236, %239
%241 = select i1 %240, double %239, double %236
%242 = fcmp olt double %238, %239
%243 = select i1 %242, double %239, double %238
%244 = call double @det3D(double* %60, double* %67, double* %68, double* %58)
%245 = fcmp ogt double %241, %244
%246 = select i1 %245, double %244, double %241
%247 = fcmp olt double %243, %244
%248 = select i1 %247, double %244, double %243
%249 = call double @det3D(double* %67, double* %62, double* %68, double* %58)
%250 = fcmp ogt double %246, %249
%251 = select i1 %250, double %249, double %246
%252 = fcmp olt double %248, %249
%253 = select i1 %252, double %249, double %248
%254 = call double @det3D(double* %62, double* %59, double* %68, double* %58)
%255 = fcmp ogt double %251, %254
%256 = select i1 %255, double %254, double %251
%257 = fcmp olt double %253, %254
%258 = select i1 %257, double %254, double %253
%259 = call double @det3D(double* %65, double* %63, double* %69, double* %58)
%260 = fcmp ogt double %256, %259
%261 = select i1 %260, double %259, double %256
%262 = fcmp olt double %258, %259
%263 = select i1 %262, double %259, double %258
%264 = call double @det3D(double* %63, double* %62, double* %69, double* %58)
%265 = fcmp ogt double %261, %264
%266 = select i1 %265, double %264, double %261
%267 = fcmp olt double %263, %264
%268 = select i1 %267, double %264, double %263
%269 = call double @det3D(double* %62, double* %67, double* %69, double* %58)
%270 = fcmp ogt double %266, %269
%271 = select i1 %270, double %269, double %266
%272 = fcmp olt double %268, %269
%273 = select i1 %272, double %269, double %268
%274 = call double @det3D(double* %67, double* %65, double* %69, double* %58)
%275 = fcmp ogt double %271, %274
%276 = select i1 %275, double %274, double %271
%277 = fcmp olt double %273, %274
%278 = select i1 %277, double %274, double %273
%279 = add nuw nsw i64 %86, 1
%280 = icmp eq i64 %279, %73
br i1 %280, label %281, label %85
281: ; preds = %154, %78
%282 = phi double [ %81, %78 ], [ %278, %154 ]
%283 = phi double [ %80, %78 ], [ %276, %154 ]
%284 = add nuw nsw i64 %79, 1
%285 = icmp eq i64 %284, %72
br i1 %285, label %286, label %78
286: ; preds = %281, %74
%287 = phi double [ %77, %74 ], [ %282, %281 ]
%288 = phi double [ %76, %74 ], [ %283, %281 ]
%289 = add nuw nsw i64 %75, 1
%290 = icmp eq i64 %289, %71
br i1 %290, label %291, label %74
291: ; preds = %286, %4
%292 = phi double [ 0.000000e+00, %4 ], [ %287, %286 ]
%293 = phi double [ 1.000000e+03, %4 ], [ %288, %286 ]
store double %293, double* %0
%294 = getelementptr inbounds double, double* %0, i64 1
store double %292, double* %294
ret void
}