void update_cell_2D_BRANCH2(double *sc_old, double *sc_new, double *u_buff,
                            int iX, int iY, int nX, int nY, double delta_t,
                            double alpha, int scheme) {
  int tid;
  double sum_face_a = 0.;
  double sum_face_d = 0.;
  double u_face;
  double u_face_t = 0.;
  double sc_face;
  double sc_face_grad;
  tid = iY * nX + iX;
  if (scheme == 0) {
    get_uface_2d(iX, iY, nX, nY, 1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_up(iX, iY, nX, nY, 1, 0, 1, tid, delta_t, u_face, u_face_t,
                   &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, -1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_up(iX, iY, nX, nY, -1, 0, -1, tid, delta_t, u_face, u_face_t,
                   &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, -1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, 1, 1, tid, &u_face, u_buff);
    get_face_2d_up(iX, iY, nX, nY, 0, 1, 1, tid, delta_t, u_face, u_face_t,
                   &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, 1, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, -1, 1, tid, &u_face, u_buff);
    get_face_2d_up(iX, iY, nX, nY, 0, -1, -1, tid, delta_t, u_face, u_face_t,
                   &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, -1, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
  } else if (scheme == 1) {
    get_uface_2d(iX, iY, nX, nY, 1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_laxwend(iX, iY, nX, nY, 1, 0, 1, tid, delta_t, u_face, u_face_t,
                        &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, -1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_laxwend(iX, iY, nX, nY, -1, 0, -1, tid, delta_t, u_face,
                        u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, -1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, 1, 1, tid, &u_face, u_buff);
    get_face_2d_laxwend(iX, iY, nX, nY, 0, 1, 1, tid, delta_t, u_face, u_face_t,
                        &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, 1, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, -1, 1, tid, &u_face, u_buff);
    get_face_2d_laxwend(iX, iY, nX, nY, 0, -1, -1, tid, delta_t, u_face,
                        u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, -1, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
  } else if (scheme == 2) {
    get_uface_2d(iX, iY, nX, nY, 1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_quickest_a(iX, iY, nX, nY, 1, 0, 1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, -1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_quickest_a(iX, iY, nX, nY, -1, 0, -1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, -1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, 1, 1, tid, &u_face, u_buff);
    get_face_2d_quickest_a(iX, iY, nX, nY, 0, 1, 1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, 1, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, -1, 1, tid, &u_face, u_buff);
    get_face_2d_quickest_a(iX, iY, nX, nY, 0, -1, -1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, -1, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
  } else if (scheme == 3) {
    get_uface_2d(iX, iY, nX, nY, 1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_quickest_b(iX, iY, nX, nY, 1, 0, 1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, -1, 0, 0, tid, &u_face, u_buff);
    get_face_2d_quickest_b(iX, iY, nX, nY, -1, 0, -1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, -1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, 1, 1, tid, &u_face, u_buff);
    get_face_2d_quickest_b(iX, iY, nX, nY, 0, 1, 1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, 1, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, -1, 1, tid, &u_face, u_buff);
    get_face_2d_quickest_b(iX, iY, nX, nY, 0, -1, -1, tid, delta_t, u_face,
                           u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, -1, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
  } else if (scheme == 4) {
    get_uface_2d(iX, iY, nX, nY, 1, 0, 0, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 1, 0, 1, tid, &u_face_t, u_buff);
    get_face_2d_upmulti(iX, iY, nX, nY, 1, 0, 1, tid, delta_t, u_face, u_face_t,
                        &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, -1, 0, 0, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, -1, 0, 1, tid, &u_face_t, u_buff);
    get_face_2d_upmulti(iX, iY, nX, nY, -1, 0, -1, tid, delta_t, u_face,
                        u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, -1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, 1, 1, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 0, 1, 0, tid, &u_face_t, u_buff);
    get_face_2d_upmulti(iX, iY, nX, nY, 0, 1, 1, tid, delta_t, u_face, u_face_t,
                        &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, 1, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, -1, 1, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 0, -1, 0, tid, &u_face_t, u_buff);
    get_face_2d_upmulti(iX, iY, nX, nY, 0, -1, -1, tid, delta_t, u_face,
                        u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, -1, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
  } else if (scheme == 5) {
    get_uface_2d(iX, iY, nX, nY, 1, 0, 0, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 1, 0, 1, tid, &u_face_t, u_buff);
    get_face_2d_utopia_simp(iX, iY, nX, nY, 1, 0, 1, tid, delta_t, u_face,
                            u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, -1, 0, 0, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, -1, 0, 1, tid, &u_face_t, u_buff);
    get_face_2d_utopia_simp(iX, iY, nX, nY, -1, 0, -1, tid, delta_t, u_face,
                            u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, -1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, 1, 1, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 0, 1, 0, tid, &u_face_t, u_buff);
    get_face_2d_utopia_simp(iX, iY, nX, nY, 0, 1, 1, tid, delta_t, u_face,
                            u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, 1, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, -1, 1, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 0, -1, 0, tid, &u_face_t, u_buff);
    get_face_2d_utopia_simp(iX, iY, nX, nY, 0, -1, -1, tid, delta_t, u_face,
                            u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, -1, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
  } else if (scheme == 6) {
    get_uface_2d(iX, iY, nX, nY, 1, 0, 0, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 1, 0, 1, tid, &u_face_t, u_buff);
    get_face_2d_utopia(iX, iY, nX, nY, 1, 0, 1, tid, delta_t, u_face, u_face_t,
                       &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, -1, 0, 0, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, -1, 0, 1, tid, &u_face_t, u_buff);
    get_face_2d_utopia(iX, iY, nX, nY, -1, 0, -1, tid, delta_t, u_face,
                       u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, -1, 0, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, 1, 1, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 0, 1, 0, tid, &u_face_t, u_buff);
    get_face_2d_utopia(iX, iY, nX, nY, 0, 1, 1, tid, delta_t, u_face, u_face_t,
                       &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, 1, tid, &sc_face_grad, sc_old);
    sum_face_a += sc_face * u_face;
    sum_face_d += sc_face_grad;
    get_uface_2d(iX, iY, nX, nY, 0, -1, 1, tid, &u_face, u_buff);
    get_uface_2d(iX, iY, nX, nY, 0, -1, 0, tid, &u_face_t, u_buff);
    get_face_2d_utopia(iX, iY, nX, nY, 0, -1, -1, tid, delta_t, u_face,
                       u_face_t, &sc_face, sc_old);
    get_face_grad_2d(iX, iY, nX, nY, 0, -1, tid, &sc_face_grad, sc_old);
    sum_face_a -= sc_face * u_face;
    sum_face_d += sc_face_grad;
  } else
    sc_face = 0.;
  *(sc_new + tid) =
      *(sc_old + tid) + 1. * delta_t * (1. * alpha * sum_face_d - sum_face_a);
}


x86 assembly (clang, -O0):
<update_cell_2D_BRANCH2>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
mov    %r8d,-0x20(%rbp)
mov    %r9d,-0x24(%rbp)
movsd  %xmm0,-0x30(%rbp)
movsd  %xmm1,-0x38(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x48(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
cmpl   $0x0,0x18(%rbp)
jne    15d4 <update_cell_2D_BRANCH2+0x444>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1070 <get_face_2d_up@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1070 <get_face_2d_up@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1070 <get_face_2d_up@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1070 <get_face_2d_up@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    3070 <update_cell_2D_BRANCH2+0x1ee0>
cmpl   $0x1,0x18(%rbp)
jne    19c1 <update_cell_2D_BRANCH2+0x831>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1090 <get_face_2d_laxwend@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1090 <get_face_2d_laxwend@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1090 <get_face_2d_laxwend@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1090 <get_face_2d_laxwend@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    306b <update_cell_2D_BRANCH2+0x1edb>
cmpl   $0x2,0x18(%rbp)
jne    1dae <update_cell_2D_BRANCH2+0xc1e>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1050 <get_face_2d_quickest_a@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1050 <get_face_2d_quickest_a@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1050 <get_face_2d_quickest_a@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1050 <get_face_2d_quickest_a@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    3066 <update_cell_2D_BRANCH2+0x1ed6>
cmpl   $0x3,0x18(%rbp)
jne    219b <update_cell_2D_BRANCH2+0x100b>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10a0 <get_face_2d_quickest_b@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10a0 <get_face_2d_quickest_b@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10a0 <get_face_2d_quickest_b@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10a0 <get_face_2d_quickest_b@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    3061 <update_cell_2D_BRANCH2+0x1ed1>
cmpl   $0x4,0x18(%rbp)
jne    2680 <update_cell_2D_BRANCH2+0x14f0>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x60(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1060 <get_face_2d_upmulti@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x60(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1060 <get_face_2d_upmulti@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x60(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1060 <get_face_2d_upmulti@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x60(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1060 <get_face_2d_upmulti@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    305c <update_cell_2D_BRANCH2+0x1ecc>
cmpl   $0x5,0x18(%rbp)
jne    2b65 <update_cell_2D_BRANCH2+0x19d5>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x60(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10b0 <get_face_2d_utopia_simp@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x60(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10b0 <get_face_2d_utopia_simp@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x60(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10b0 <get_face_2d_utopia_simp@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x60(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   10b0 <get_face_2d_utopia_simp@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    3057 <update_cell_2D_BRANCH2+0x1ec7>
cmpl   $0x6,0x18(%rbp)
jne    304a <update_cell_2D_BRANCH2+0x1eba>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x60(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1030 <get_face_2d_utopia@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0x1,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x58(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x60(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1030 <get_face_2d_utopia@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x60(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x68(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1030 <get_face_2d_utopia@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0x1,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x58(%rbp),%r10
movl   $0x1,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x18(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x60(%rbp),%r10
movl   $0x0,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x0,%al
call   1040 <get_uface_2d@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x68(%rbp),%r10
movl   $0xffffffff,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10,0x10(%rsp)
mov    %rax,0x18(%rsp)
mov    $0x3,%al
call   1030 <get_face_2d_utopia@plt>
mov    -0x1c(%rbp),%edi
mov    -0x20(%rbp),%esi
mov    -0x24(%rbp),%edx
mov    0x10(%rbp),%ecx
mov    -0x3c(%rbp),%r11d
mov    -0x8(%rbp),%rax
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
lea    -0x70(%rbp),%r10
mov    %r11d,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1080 <get_face_grad_2d@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x70(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    3052 <update_cell_2D_BRANCH2+0x1ec2>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    3057 <update_cell_2D_BRANCH2+0x1ec7>
jmp    305c <update_cell_2D_BRANCH2+0x1ecc>
jmp    3061 <update_cell_2D_BRANCH2+0x1ed1>
jmp    3066 <update_cell_2D_BRANCH2+0x1ed6>
jmp    306b <update_cell_2D_BRANCH2+0x1edb>
jmp    3070 <update_cell_2D_BRANCH2+0x1ee0>
mov    -0x8(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  0xf7b(%rip),%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  0xf6e(%rip),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm4
movsd  -0x48(%rbp),%xmm3
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<update_cell_2D_BRANCH2>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x68,%rsp
mov    %rdi,0x40(%rsp)
mov    0xa8(%rsp),%eax
mov    %r9d,%r12d
imul   %r8d,%r12d
add    %ecx,%r12d
movq   $0x0,0x30(%rsp)
cmp    $0x6,%rax
ja     14dd <update_cell_2D_BRANCH2+0x34d>
mov    %ecx,%r13d
mov    %rdx,%rbx
mov    %r9d,%ebp
mov    %r8d,%r15d
mov    %rsi,0x50(%rsp)
movsd  %xmm1,0x58(%rsp)
movsd  %xmm0,0x38(%rsp)
mov    0xa0(%rsp),%ecx
lea    0x1e0e(%rip),%rdx
movslq (%rdx,%rax,4),%rax
add    %rdx,%rax
mov    %rbx,0x48(%rsp)
jmp    *%rax
lea    0x8(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    %ecx,%ebp
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbx
push   %rbx
push   %r10
push   %r12
push   $0x1
call   1070 <get_face_2d_up@plt>
add    $0x18,%rsp
lea    0x18(%rsp),%rbp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ebx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%ebp
mov    %r14d,%edx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%r14
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   1070 <get_face_2d_up@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa8(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1070 <get_face_2d_up@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    %rbp,%rbx
push   %rbp
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
push   $0xffffffffffffffff
call   1070 <get_face_2d_up@plt>
jmp    1d7c <update_cell_2D_BRANCH2+0xbec>
xorpd  %xmm3,%xmm3
xorpd  %xmm2,%xmm2
jmp    2948 <update_cell_2D_BRANCH2+0x17b8>
lea    0x8(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    %ecx,%ebp
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbx
push   %rbx
push   %r10
push   %r12
push   $0x1
call   1090 <get_face_2d_laxwend@plt>
add    $0x18,%rsp
lea    0x18(%rsp),%rbp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ebx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%ebp
mov    %r14d,%edx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%r14
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   1090 <get_face_2d_laxwend@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa8(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1090 <get_face_2d_laxwend@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    %rbp,%rbx
push   %rbp
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
push   $0xffffffffffffffff
call   1090 <get_face_2d_laxwend@plt>
jmp    1d7c <update_cell_2D_BRANCH2+0xbec>
lea    0x8(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    %ecx,%ebp
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbx
push   %rbx
push   %r10
push   %r12
push   $0x1
call   1050 <get_face_2d_quickest_a@plt>
add    $0x18,%rsp
lea    0x18(%rsp),%rbp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ebx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%ebp
mov    %r14d,%edx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%r14
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   1050 <get_face_2d_quickest_a@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa8(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1050 <get_face_2d_quickest_a@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    %rbp,%rbx
push   %rbp
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
push   $0xffffffffffffffff
call   1050 <get_face_2d_quickest_a@plt>
jmp    1d7c <update_cell_2D_BRANCH2+0xbec>
lea    0x8(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    %ecx,%ebp
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbx
push   %rbx
push   %r10
push   %r12
push   $0x1
call   10a0 <get_face_2d_quickest_b@plt>
add    $0x18,%rsp
lea    0x18(%rsp),%rbp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ebx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%ebp
mov    %r14d,%edx
mov    %ebx,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%r14
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   10a0 <get_face_2d_quickest_b@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa8(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %r14
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%r14d
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   10a0 <get_face_2d_quickest_b@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   0x48(%rsp)
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    %rbp,%rbx
push   %rbp
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
push   $0xffffffffffffffff
call   10a0 <get_face_2d_quickest_b@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
jmp    2150 <update_cell_2D_BRANCH2+0xfc0>
lea    0x8(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    %ecx,%r14d
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
lea    0x30(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    %r14d,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
lea    0x18(%rsp),%rbx
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    %ebp,%r14d
mov    0xa0(%rsp),%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
push   %rbx
push   %r12
push   $0x1
call   1060 <get_face_2d_upmulti@plt>
add    $0x18,%rsp
lea    0x18(%rsp),%rbx
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    %r14d,0x68(%rsp)
mov    0xa8(%rsp),%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbp
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%rbx
push   %rbx
mov    %r15d,%r14d
mov    %r13d,%r15d
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r13d,%edi
mov    %r14d,%esi
mov    0x60(%rsp),%r13d
mov    %r13d,%edx
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
lea    0x38(%rsp),%rbp
push   %rbp
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r15d,%edi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   1060 <get_face_2d_upmulti@plt>
add    $0x18,%rsp
mov    %r15d,%edi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0xa8(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r15d,%edi
mov    %r14d,%esi
mov    %r13d,%ebx
mov    %r13d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%r13
push   %r13
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r15d,%edi
mov    %r14d,%esi
mov    %ebx,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %r13
lea    0x38(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r15d,%edi
mov    %r14d,%esi
mov    %ebx,%r13d
mov    %ebx,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1060 <get_face_2d_upmulti@plt>
add    $0x18,%rsp
mov    %r15d,%edi
mov    %r14d,%esi
mov    %r13d,%edx
mov    %r13d,%ebx
mov    0xa8(%rsp),%r13d
mov    %r13d,%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r15d,%edi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r13d,%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%r13
push   %r13
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r15d,%edi
mov    %r14d,%esi
mov    %ebx,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   %r13
lea    0x38(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r15d,%edi
mov    %r14d,%esi
mov    %ebx,%r13d
mov    %ebx,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbx
push   %rbx
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
push   $0xffffffffffffffff
call   1060 <get_face_2d_upmulti@plt>
add    $0x18,%rsp
mov    %r15d,%edi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   %rbx
jmp    2904 <update_cell_2D_BRANCH2+0x1774>
lea    0x8(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r15d,%r14d
mov    %ebp,%r15d
mov    %ebp,%edx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
lea    0x30(%rsp),%r10
mov    %r13d,%edi
mov    %r14d,%ebp
mov    %r14d,%esi
mov    %r15d,%edx
mov    %r15d,%r14d
mov    0xa0(%rsp),%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %ebp,%esi
mov    %ebp,%r15d
mov    %r14d,%ebx
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
mov    %ecx,%r14d
mov    $0x1,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
push   %r10
push   %r12
push   $0x1
call   10b0 <get_face_2d_utopia_simp@plt>
add    $0x18,%rsp
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebx,%edx
mov    %r14d,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbp
push   %r10
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebx,%edx
mov    %ebx,%r14d
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%rbx
push   %rbx
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
lea    0x38(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   10b0 <get_face_2d_utopia_simp@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%ebp
mov    %r14d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%r14
push   %r14
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r15d,0x64(%rsp)
mov    %ebp,%edx
mov    %ebp,%ebx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %r14
lea    0x38(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebx,%edx
mov    %ebx,%r15d
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbx
push   %rbx
mov    %r13d,%r14d
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
push   $0x1
call   10b0 <get_face_2d_utopia_simp@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    0x6c(%rsp),%r13d
mov    %r13d,%esi
mov    %r15d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbx
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r14d,%edi
mov    %r13d,%esi
mov    %r15d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%rbp
push   %rbp
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r14d,%edi
mov    %r13d,%esi
mov    %r15d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   %rbp
lea    0x38(%rsp),%rbp
push   %rbp
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r14d,%edi
mov    %r13d,%esi
mov    %r15d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   10b0 <get_face_2d_utopia_simp@plt>
add    $0x18,%rsp
mov    %r14d,%edi
mov    %r13d,%esi
jmp    28ee <update_cell_2D_BRANCH2+0x175e>
lea    0x8(%rsp),%r10
mov    %r13d,%edi
mov    %r15d,%r14d
mov    %r15d,%esi
mov    %ebp,%r15d
mov    %ebp,%edx
mov    %ecx,%ebp
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
lea    0x30(%rsp),%r10
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    %ebp,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    %ebp,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbx
push   %rbx
push   %r10
push   %r12
push   $0x1
call   1030 <get_face_2d_utopia@plt>
add    $0x18,%rsp
lea    0x18(%rsp),%r10
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    %ebp,%ecx
mov    $0x1,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbx
push   %r10
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    %ebp,%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%rbp
push   %rbp
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbp
lea    0x38(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    0xa0(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   1030 <get_face_2d_utopia@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    0xa8(%rsp),%ecx
mov    $0xffffffff,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%rbx
push   %rbx
mov    %r15d,0x68(%rsp)
lea    0x10(%rsp),%rbp
push   %rbp
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    0xa0(%rsp),%ebp
mov    %ebp,%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbx
lea    0x38(%rsp),%r15
push   %r15
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    %r14d,%r15d
mov    %r14d,%esi
mov    0x60(%rsp),%r14d
mov    %r14d,%edx
mov    %ebp,%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1030 <get_face_2d_utopia@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0x1,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
call   1080 <get_face_grad_2d@plt>
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
mov    %r13d,%edi
mov    %r15d,0x64(%rsp)
mov    %r15d,%esi
mov    %r14d,%edx
mov    %r14d,%ebp
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
mov    0x48(%rsp),%r14
push   %r14
lea    0x10(%rsp),%rbx
push   %rbx
push   %r12
push   $0x1
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
mov    %r13d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   %r14
lea    0x38(%rsp),%rbx
push   %rbx
push   %r12
push   $0x0
call   1040 <get_uface_2d@plt>
add    $0x20,%rsp
movsd  0x8(%rsp),%xmm1
movsd  0x30(%rsp),%xmm2
mov    %r13d,%edi
mov    0x64(%rsp),%r14d
mov    %r14d,%esi
mov    %ebp,%edx
mov    %ebp,%r15d
mov    0xa0(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
movsd  0x38(%rsp),%xmm0
mov    $0x3,%al
mov    0x40(%rsp),%rbp
push   %rbp
lea    0x20(%rsp),%rbx
push   %rbx
push   %r12
push   $0xffffffffffffffff
call   1030 <get_face_2d_utopia@plt>
add    $0x18,%rsp
mov    %r13d,%edi
mov    %r14d,%esi
mov    %r15d,%edx
mov    0xa8(%rsp),%ecx
xor    %r8d,%r8d
mov    $0xffffffff,%r9d
xor    %eax,%eax
push   %rbp
lea    0x20(%rsp),%rbp
push   %rbp
push   %r12
call   1080 <get_face_grad_2d@plt>
movsd  0x40(%rsp),%xmm3
movsd  0x48(%rsp),%xmm2
add    $0x20,%rsp
movsd  0x18(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
subsd  %xmm0,%xmm3
movsd  0x38(%rsp),%xmm0
addsd  0x10(%rsp),%xmm2
movsd  0x58(%rsp),%xmm1
mov    0x50(%rsp),%rsi
movslq %r12d,%rax
mulsd  %xmm2,%xmm1
subsd  %xmm3,%xmm1
mulsd  %xmm1,%xmm0
mov    0x40(%rsp),%rcx
addsd  (%rcx,%rax,8),%xmm0
movsd  %xmm0,(%rsi,%rax,8)
add    $0x68,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @update_cell_2D_BRANCH2(double* %0, double* %1, double* %2, i32 %3, i32 %4, i32 %5, i32 %6, double %7, double %8, i32 %9) {
%11 = alloca double*
%12 = alloca double*
%13 = alloca double*
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca double
%19 = alloca double
%20 = alloca i32
%21 = alloca i32
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
store double* %0, double** %11
store double* %1, double** %12
store double* %2, double** %13
store i32 %3, i32* %14
store i32 %4, i32* %15
store i32 %5, i32* %16
store i32 %6, i32* %17
store double %7, double* %18
store double %8, double* %19
store i32 %9, i32* %20
store double 0.000000e+00, double* %22
store double 0.000000e+00, double* %23
store double 0.000000e+00, double* %25
%28 = load i32, i32* %15
%29 = load i32, i32* %16
%30 = mul nsw i32 %28, %29
%31 = load i32, i32* %14
%32 = add nsw i32 %30, %31
store i32 %32, i32* %21
%33 = load i32, i32* %20
%34 = icmp eq i32 %33, 0
br i1 %34, label %35, label %162
35: ; preds = %10
%36 = load i32, i32* %14
%37 = load i32, i32* %15
%38 = load i32, i32* %16
%39 = load i32, i32* %17
%40 = load i32, i32* %21
%41 = load double*, double** %13
%42 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %36, i32 %37, i32 %38, i32 %39, i32 1, i32 0, i32 0, i32 %40, double* %24, double* %41)
%43 = load i32, i32* %14
%44 = load i32, i32* %15
%45 = load i32, i32* %16
%46 = load i32, i32* %17
%47 = load i32, i32* %21
%48 = load double, double* %18
%49 = load double, double* %24
%50 = load double, double* %25
%51 = load double*, double** %11
%52 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_up to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %43, i32 %44, i32 %45, i32 %46, i32 1, i32 0, i32 1, i32 %47, double %48, double %49, double %50, double* %26, double* %51)
%53 = load i32, i32* %14
%54 = load i32, i32* %15
%55 = load i32, i32* %16
%56 = load i32, i32* %17
%57 = load i32, i32* %21
%58 = load double*, double** %11
%59 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %53, i32 %54, i32 %55, i32 %56, i32 1, i32 0, i32 %57, double* %27, double* %58)
%60 = load double, double* %26
%61 = load double, double* %24
%62 = load double, double* %22
%63 = call double @llvm.fmuladd.f64(double %60, double %61, double %62)
store double %63, double* %22
%64 = load double, double* %27
%65 = load double, double* %23
%66 = fadd double %65, %64
store double %66, double* %23
%67 = load i32, i32* %14
%68 = load i32, i32* %15
%69 = load i32, i32* %16
%70 = load i32, i32* %17
%71 = load i32, i32* %21
%72 = load double*, double** %13
%73 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %67, i32 %68, i32 %69, i32 %70, i32 -1, i32 0, i32 0, i32 %71, double* %24, double* %72)
%74 = load i32, i32* %14
%75 = load i32, i32* %15
%76 = load i32, i32* %16
%77 = load i32, i32* %17
%78 = load i32, i32* %21
%79 = load double, double* %18
%80 = load double, double* %24
%81 = load double, double* %25
%82 = load double*, double** %11
%83 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_up to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %74, i32 %75, i32 %76, i32 %77, i32 -1, i32 0, i32 -1, i32 %78, double %79, double %80, double %81, double* %26, double* %82)
%84 = load i32, i32* %14
%85 = load i32, i32* %15
%86 = load i32, i32* %16
%87 = load i32, i32* %17
%88 = load i32, i32* %21
%89 = load double*, double** %11
%90 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %84, i32 %85, i32 %86, i32 %87, i32 -1, i32 0, i32 %88, double* %27, double* %89)
%91 = load double, double* %26
%92 = load double, double* %24
%93 = load double, double* %22
%94 = fneg double %91
%95 = call double @llvm.fmuladd.f64(double %94, double %92, double %93)
store double %95, double* %22
%96 = load double, double* %27
%97 = load double, double* %23
%98 = fadd double %97, %96
store double %98, double* %23
%99 = load i32, i32* %14
%100 = load i32, i32* %15
%101 = load i32, i32* %16
%102 = load i32, i32* %17
%103 = load i32, i32* %21
%104 = load double*, double** %13
%105 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %99, i32 %100, i32 %101, i32 %102, i32 0, i32 1, i32 1, i32 %103, double* %24, double* %104)
%106 = load i32, i32* %14
%107 = load i32, i32* %15
%108 = load i32, i32* %16
%109 = load i32, i32* %17
%110 = load i32, i32* %21
%111 = load double, double* %18
%112 = load double, double* %24
%113 = load double, double* %25
%114 = load double*, double** %11
%115 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_up to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %106, i32 %107, i32 %108, i32 %109, i32 0, i32 1, i32 1, i32 %110, double %111, double %112, double %113, double* %26, double* %114)
%116 = load i32, i32* %14
%117 = load i32, i32* %15
%118 = load i32, i32* %16
%119 = load i32, i32* %17
%120 = load i32, i32* %21
%121 = load double*, double** %11
%122 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %116, i32 %117, i32 %118, i32 %119, i32 0, i32 1, i32 %120, double* %27, double* %121)
%123 = load double, double* %26
%124 = load double, double* %24
%125 = load double, double* %22
%126 = call double @llvm.fmuladd.f64(double %123, double %124, double %125)
store double %126, double* %22
%127 = load double, double* %27
%128 = load double, double* %23
%129 = fadd double %128, %127
store double %129, double* %23
%130 = load i32, i32* %14
%131 = load i32, i32* %15
%132 = load i32, i32* %16
%133 = load i32, i32* %17
%134 = load i32, i32* %21
%135 = load double*, double** %13
%136 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %130, i32 %131, i32 %132, i32 %133, i32 0, i32 -1, i32 1, i32 %134, double* %24, double* %135)
%137 = load i32, i32* %14
%138 = load i32, i32* %15
%139 = load i32, i32* %16
%140 = load i32, i32* %17
%141 = load i32, i32* %21
%142 = load double, double* %18
%143 = load double, double* %24
%144 = load double, double* %25
%145 = load double*, double** %11
%146 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_up to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %137, i32 %138, i32 %139, i32 %140, i32 0, i32 -1, i32 -1, i32 %141, double %142, double %143, double %144, double* %26, double* %145)
%147 = load i32, i32* %14
%148 = load i32, i32* %15
%149 = load i32, i32* %16
%150 = load i32, i32* %17
%151 = load i32, i32* %21
%152 = load double*, double** %11
%153 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %147, i32 %148, i32 %149, i32 %150, i32 0, i32 -1, i32 %151, double* %27, double* %152)
%154 = load double, double* %26
%155 = load double, double* %24
%156 = load double, double* %22
%157 = fneg double %154
%158 = call double @llvm.fmuladd.f64(double %157, double %155, double %156)
store double %158, double* %22
%159 = load double, double* %27
%160 = load double, double* %23
%161 = fadd double %160, %159
store double %161, double* %23
br label %1033
162: ; preds = %10
%163 = load i32, i32* %20
%164 = icmp eq i32 %163, 1
br i1 %164, label %165, label %292
165: ; preds = %162
%166 = load i32, i32* %14
%167 = load i32, i32* %15
%168 = load i32, i32* %16
%169 = load i32, i32* %17
%170 = load i32, i32* %21
%171 = load double*, double** %13
%172 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %166, i32 %167, i32 %168, i32 %169, i32 1, i32 0, i32 0, i32 %170, double* %24, double* %171)
%173 = load i32, i32* %14
%174 = load i32, i32* %15
%175 = load i32, i32* %16
%176 = load i32, i32* %17
%177 = load i32, i32* %21
%178 = load double, double* %18
%179 = load double, double* %24
%180 = load double, double* %25
%181 = load double*, double** %11
%182 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_laxwend to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %173, i32 %174, i32 %175, i32 %176, i32 1, i32 0, i32 1, i32 %177, double %178, double %179, double %180, double* %26, double* %181)
%183 = load i32, i32* %14
%184 = load i32, i32* %15
%185 = load i32, i32* %16
%186 = load i32, i32* %17
%187 = load i32, i32* %21
%188 = load double*, double** %11
%189 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %183, i32 %184, i32 %185, i32 %186, i32 1, i32 0, i32 %187, double* %27, double* %188)
%190 = load double, double* %26
%191 = load double, double* %24
%192 = load double, double* %22
%193 = call double @llvm.fmuladd.f64(double %190, double %191, double %192)
store double %193, double* %22
%194 = load double, double* %27
%195 = load double, double* %23
%196 = fadd double %195, %194
store double %196, double* %23
%197 = load i32, i32* %14
%198 = load i32, i32* %15
%199 = load i32, i32* %16
%200 = load i32, i32* %17
%201 = load i32, i32* %21
%202 = load double*, double** %13
%203 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %197, i32 %198, i32 %199, i32 %200, i32 -1, i32 0, i32 0, i32 %201, double* %24, double* %202)
%204 = load i32, i32* %14
%205 = load i32, i32* %15
%206 = load i32, i32* %16
%207 = load i32, i32* %17
%208 = load i32, i32* %21
%209 = load double, double* %18
%210 = load double, double* %24
%211 = load double, double* %25
%212 = load double*, double** %11
%213 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_laxwend to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %204, i32 %205, i32 %206, i32 %207, i32 -1, i32 0, i32 -1, i32 %208, double %209, double %210, double %211, double* %26, double* %212)
%214 = load i32, i32* %14
%215 = load i32, i32* %15
%216 = load i32, i32* %16
%217 = load i32, i32* %17
%218 = load i32, i32* %21
%219 = load double*, double** %11
%220 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %214, i32 %215, i32 %216, i32 %217, i32 -1, i32 0, i32 %218, double* %27, double* %219)
%221 = load double, double* %26
%222 = load double, double* %24
%223 = load double, double* %22
%224 = fneg double %221
%225 = call double @llvm.fmuladd.f64(double %224, double %222, double %223)
store double %225, double* %22
%226 = load double, double* %27
%227 = load double, double* %23
%228 = fadd double %227, %226
store double %228, double* %23
%229 = load i32, i32* %14
%230 = load i32, i32* %15
%231 = load i32, i32* %16
%232 = load i32, i32* %17
%233 = load i32, i32* %21
%234 = load double*, double** %13
%235 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %229, i32 %230, i32 %231, i32 %232, i32 0, i32 1, i32 1, i32 %233, double* %24, double* %234)
%236 = load i32, i32* %14
%237 = load i32, i32* %15
%238 = load i32, i32* %16
%239 = load i32, i32* %17
%240 = load i32, i32* %21
%241 = load double, double* %18
%242 = load double, double* %24
%243 = load double, double* %25
%244 = load double*, double** %11
%245 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_laxwend to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %236, i32 %237, i32 %238, i32 %239, i32 0, i32 1, i32 1, i32 %240, double %241, double %242, double %243, double* %26, double* %244)
%246 = load i32, i32* %14
%247 = load i32, i32* %15
%248 = load i32, i32* %16
%249 = load i32, i32* %17
%250 = load i32, i32* %21
%251 = load double*, double** %11
%252 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %246, i32 %247, i32 %248, i32 %249, i32 0, i32 1, i32 %250, double* %27, double* %251)
%253 = load double, double* %26
%254 = load double, double* %24
%255 = load double, double* %22
%256 = call double @llvm.fmuladd.f64(double %253, double %254, double %255)
store double %256, double* %22
%257 = load double, double* %27
%258 = load double, double* %23
%259 = fadd double %258, %257
store double %259, double* %23
%260 = load i32, i32* %14
%261 = load i32, i32* %15
%262 = load i32, i32* %16
%263 = load i32, i32* %17
%264 = load i32, i32* %21
%265 = load double*, double** %13
%266 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %260, i32 %261, i32 %262, i32 %263, i32 0, i32 -1, i32 1, i32 %264, double* %24, double* %265)
%267 = load i32, i32* %14
%268 = load i32, i32* %15
%269 = load i32, i32* %16
%270 = load i32, i32* %17
%271 = load i32, i32* %21
%272 = load double, double* %18
%273 = load double, double* %24
%274 = load double, double* %25
%275 = load double*, double** %11
%276 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_laxwend to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %267, i32 %268, i32 %269, i32 %270, i32 0, i32 -1, i32 -1, i32 %271, double %272, double %273, double %274, double* %26, double* %275)
%277 = load i32, i32* %14
%278 = load i32, i32* %15
%279 = load i32, i32* %16
%280 = load i32, i32* %17
%281 = load i32, i32* %21
%282 = load double*, double** %11
%283 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %277, i32 %278, i32 %279, i32 %280, i32 0, i32 -1, i32 %281, double* %27, double* %282)
%284 = load double, double* %26
%285 = load double, double* %24
%286 = load double, double* %22
%287 = fneg double %284
%288 = call double @llvm.fmuladd.f64(double %287, double %285, double %286)
store double %288, double* %22
%289 = load double, double* %27
%290 = load double, double* %23
%291 = fadd double %290, %289
store double %291, double* %23
br label %1032
292: ; preds = %162
%293 = load i32, i32* %20
%294 = icmp eq i32 %293, 2
br i1 %294, label %295, label %422
295: ; preds = %292
%296 = load i32, i32* %14
%297 = load i32, i32* %15
%298 = load i32, i32* %16
%299 = load i32, i32* %17
%300 = load i32, i32* %21
%301 = load double*, double** %13
%302 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %296, i32 %297, i32 %298, i32 %299, i32 1, i32 0, i32 0, i32 %300, double* %24, double* %301)
%303 = load i32, i32* %14
%304 = load i32, i32* %15
%305 = load i32, i32* %16
%306 = load i32, i32* %17
%307 = load i32, i32* %21
%308 = load double, double* %18
%309 = load double, double* %24
%310 = load double, double* %25
%311 = load double*, double** %11
%312 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_a to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %303, i32 %304, i32 %305, i32 %306, i32 1, i32 0, i32 1, i32 %307, double %308, double %309, double %310, double* %26, double* %311)
%313 = load i32, i32* %14
%314 = load i32, i32* %15
%315 = load i32, i32* %16
%316 = load i32, i32* %17
%317 = load i32, i32* %21
%318 = load double*, double** %11
%319 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %313, i32 %314, i32 %315, i32 %316, i32 1, i32 0, i32 %317, double* %27, double* %318)
%320 = load double, double* %26
%321 = load double, double* %24
%322 = load double, double* %22
%323 = call double @llvm.fmuladd.f64(double %320, double %321, double %322)
store double %323, double* %22
%324 = load double, double* %27
%325 = load double, double* %23
%326 = fadd double %325, %324
store double %326, double* %23
%327 = load i32, i32* %14
%328 = load i32, i32* %15
%329 = load i32, i32* %16
%330 = load i32, i32* %17
%331 = load i32, i32* %21
%332 = load double*, double** %13
%333 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %327, i32 %328, i32 %329, i32 %330, i32 -1, i32 0, i32 0, i32 %331, double* %24, double* %332)
%334 = load i32, i32* %14
%335 = load i32, i32* %15
%336 = load i32, i32* %16
%337 = load i32, i32* %17
%338 = load i32, i32* %21
%339 = load double, double* %18
%340 = load double, double* %24
%341 = load double, double* %25
%342 = load double*, double** %11
%343 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_a to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %334, i32 %335, i32 %336, i32 %337, i32 -1, i32 0, i32 -1, i32 %338, double %339, double %340, double %341, double* %26, double* %342)
%344 = load i32, i32* %14
%345 = load i32, i32* %15
%346 = load i32, i32* %16
%347 = load i32, i32* %17
%348 = load i32, i32* %21
%349 = load double*, double** %11
%350 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %344, i32 %345, i32 %346, i32 %347, i32 -1, i32 0, i32 %348, double* %27, double* %349)
%351 = load double, double* %26
%352 = load double, double* %24
%353 = load double, double* %22
%354 = fneg double %351
%355 = call double @llvm.fmuladd.f64(double %354, double %352, double %353)
store double %355, double* %22
%356 = load double, double* %27
%357 = load double, double* %23
%358 = fadd double %357, %356
store double %358, double* %23
%359 = load i32, i32* %14
%360 = load i32, i32* %15
%361 = load i32, i32* %16
%362 = load i32, i32* %17
%363 = load i32, i32* %21
%364 = load double*, double** %13
%365 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %359, i32 %360, i32 %361, i32 %362, i32 0, i32 1, i32 1, i32 %363, double* %24, double* %364)
%366 = load i32, i32* %14
%367 = load i32, i32* %15
%368 = load i32, i32* %16
%369 = load i32, i32* %17
%370 = load i32, i32* %21
%371 = load double, double* %18
%372 = load double, double* %24
%373 = load double, double* %25
%374 = load double*, double** %11
%375 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_a to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %366, i32 %367, i32 %368, i32 %369, i32 0, i32 1, i32 1, i32 %370, double %371, double %372, double %373, double* %26, double* %374)
%376 = load i32, i32* %14
%377 = load i32, i32* %15
%378 = load i32, i32* %16
%379 = load i32, i32* %17
%380 = load i32, i32* %21
%381 = load double*, double** %11
%382 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %376, i32 %377, i32 %378, i32 %379, i32 0, i32 1, i32 %380, double* %27, double* %381)
%383 = load double, double* %26
%384 = load double, double* %24
%385 = load double, double* %22
%386 = call double @llvm.fmuladd.f64(double %383, double %384, double %385)
store double %386, double* %22
%387 = load double, double* %27
%388 = load double, double* %23
%389 = fadd double %388, %387
store double %389, double* %23
%390 = load i32, i32* %14
%391 = load i32, i32* %15
%392 = load i32, i32* %16
%393 = load i32, i32* %17
%394 = load i32, i32* %21
%395 = load double*, double** %13
%396 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %390, i32 %391, i32 %392, i32 %393, i32 0, i32 -1, i32 1, i32 %394, double* %24, double* %395)
%397 = load i32, i32* %14
%398 = load i32, i32* %15
%399 = load i32, i32* %16
%400 = load i32, i32* %17
%401 = load i32, i32* %21
%402 = load double, double* %18
%403 = load double, double* %24
%404 = load double, double* %25
%405 = load double*, double** %11
%406 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_a to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %397, i32 %398, i32 %399, i32 %400, i32 0, i32 -1, i32 -1, i32 %401, double %402, double %403, double %404, double* %26, double* %405)
%407 = load i32, i32* %14
%408 = load i32, i32* %15
%409 = load i32, i32* %16
%410 = load i32, i32* %17
%411 = load i32, i32* %21
%412 = load double*, double** %11
%413 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %407, i32 %408, i32 %409, i32 %410, i32 0, i32 -1, i32 %411, double* %27, double* %412)
%414 = load double, double* %26
%415 = load double, double* %24
%416 = load double, double* %22
%417 = fneg double %414
%418 = call double @llvm.fmuladd.f64(double %417, double %415, double %416)
store double %418, double* %22
%419 = load double, double* %27
%420 = load double, double* %23
%421 = fadd double %420, %419
store double %421, double* %23
br label %1031
422: ; preds = %292
%423 = load i32, i32* %20
%424 = icmp eq i32 %423, 3
br i1 %424, label %425, label %552
425: ; preds = %422
%426 = load i32, i32* %14
%427 = load i32, i32* %15
%428 = load i32, i32* %16
%429 = load i32, i32* %17
%430 = load i32, i32* %21
%431 = load double*, double** %13
%432 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %426, i32 %427, i32 %428, i32 %429, i32 1, i32 0, i32 0, i32 %430, double* %24, double* %431)
%433 = load i32, i32* %14
%434 = load i32, i32* %15
%435 = load i32, i32* %16
%436 = load i32, i32* %17
%437 = load i32, i32* %21
%438 = load double, double* %18
%439 = load double, double* %24
%440 = load double, double* %25
%441 = load double*, double** %11
%442 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_b to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %433, i32 %434, i32 %435, i32 %436, i32 1, i32 0, i32 1, i32 %437, double %438, double %439, double %440, double* %26, double* %441)
%443 = load i32, i32* %14
%444 = load i32, i32* %15
%445 = load i32, i32* %16
%446 = load i32, i32* %17
%447 = load i32, i32* %21
%448 = load double*, double** %11
%449 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %443, i32 %444, i32 %445, i32 %446, i32 1, i32 0, i32 %447, double* %27, double* %448)
%450 = load double, double* %26
%451 = load double, double* %24
%452 = load double, double* %22
%453 = call double @llvm.fmuladd.f64(double %450, double %451, double %452)
store double %453, double* %22
%454 = load double, double* %27
%455 = load double, double* %23
%456 = fadd double %455, %454
store double %456, double* %23
%457 = load i32, i32* %14
%458 = load i32, i32* %15
%459 = load i32, i32* %16
%460 = load i32, i32* %17
%461 = load i32, i32* %21
%462 = load double*, double** %13
%463 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %457, i32 %458, i32 %459, i32 %460, i32 -1, i32 0, i32 0, i32 %461, double* %24, double* %462)
%464 = load i32, i32* %14
%465 = load i32, i32* %15
%466 = load i32, i32* %16
%467 = load i32, i32* %17
%468 = load i32, i32* %21
%469 = load double, double* %18
%470 = load double, double* %24
%471 = load double, double* %25
%472 = load double*, double** %11
%473 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_b to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %464, i32 %465, i32 %466, i32 %467, i32 -1, i32 0, i32 -1, i32 %468, double %469, double %470, double %471, double* %26, double* %472)
%474 = load i32, i32* %14
%475 = load i32, i32* %15
%476 = load i32, i32* %16
%477 = load i32, i32* %17
%478 = load i32, i32* %21
%479 = load double*, double** %11
%480 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %474, i32 %475, i32 %476, i32 %477, i32 -1, i32 0, i32 %478, double* %27, double* %479)
%481 = load double, double* %26
%482 = load double, double* %24
%483 = load double, double* %22
%484 = fneg double %481
%485 = call double @llvm.fmuladd.f64(double %484, double %482, double %483)
store double %485, double* %22
%486 = load double, double* %27
%487 = load double, double* %23
%488 = fadd double %487, %486
store double %488, double* %23
%489 = load i32, i32* %14
%490 = load i32, i32* %15
%491 = load i32, i32* %16
%492 = load i32, i32* %17
%493 = load i32, i32* %21
%494 = load double*, double** %13
%495 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %489, i32 %490, i32 %491, i32 %492, i32 0, i32 1, i32 1, i32 %493, double* %24, double* %494)
%496 = load i32, i32* %14
%497 = load i32, i32* %15
%498 = load i32, i32* %16
%499 = load i32, i32* %17
%500 = load i32, i32* %21
%501 = load double, double* %18
%502 = load double, double* %24
%503 = load double, double* %25
%504 = load double*, double** %11
%505 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_b to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %496, i32 %497, i32 %498, i32 %499, i32 0, i32 1, i32 1, i32 %500, double %501, double %502, double %503, double* %26, double* %504)
%506 = load i32, i32* %14
%507 = load i32, i32* %15
%508 = load i32, i32* %16
%509 = load i32, i32* %17
%510 = load i32, i32* %21
%511 = load double*, double** %11
%512 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %506, i32 %507, i32 %508, i32 %509, i32 0, i32 1, i32 %510, double* %27, double* %511)
%513 = load double, double* %26
%514 = load double, double* %24
%515 = load double, double* %22
%516 = call double @llvm.fmuladd.f64(double %513, double %514, double %515)
store double %516, double* %22
%517 = load double, double* %27
%518 = load double, double* %23
%519 = fadd double %518, %517
store double %519, double* %23
%520 = load i32, i32* %14
%521 = load i32, i32* %15
%522 = load i32, i32* %16
%523 = load i32, i32* %17
%524 = load i32, i32* %21
%525 = load double*, double** %13
%526 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %520, i32 %521, i32 %522, i32 %523, i32 0, i32 -1, i32 1, i32 %524, double* %24, double* %525)
%527 = load i32, i32* %14
%528 = load i32, i32* %15
%529 = load i32, i32* %16
%530 = load i32, i32* %17
%531 = load i32, i32* %21
%532 = load double, double* %18
%533 = load double, double* %24
%534 = load double, double* %25
%535 = load double*, double** %11
%536 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_quickest_b to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %527, i32 %528, i32 %529, i32 %530, i32 0, i32 -1, i32 -1, i32 %531, double %532, double %533, double %534, double* %26, double* %535)
%537 = load i32, i32* %14
%538 = load i32, i32* %15
%539 = load i32, i32* %16
%540 = load i32, i32* %17
%541 = load i32, i32* %21
%542 = load double*, double** %11
%543 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %537, i32 %538, i32 %539, i32 %540, i32 0, i32 -1, i32 %541, double* %27, double* %542)
%544 = load double, double* %26
%545 = load double, double* %24
%546 = load double, double* %22
%547 = fneg double %544
%548 = call double @llvm.fmuladd.f64(double %547, double %545, double %546)
store double %548, double* %22
%549 = load double, double* %27
%550 = load double, double* %23
%551 = fadd double %550, %549
store double %551, double* %23
br label %1030
552: ; preds = %422
%553 = load i32, i32* %20
%554 = icmp eq i32 %553, 4
br i1 %554, label %555, label %710
555: ; preds = %552
%556 = load i32, i32* %14
%557 = load i32, i32* %15
%558 = load i32, i32* %16
%559 = load i32, i32* %17
%560 = load i32, i32* %21
%561 = load double*, double** %13
%562 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %556, i32 %557, i32 %558, i32 %559, i32 1, i32 0, i32 0, i32 %560, double* %24, double* %561)
%563 = load i32, i32* %14
%564 = load i32, i32* %15
%565 = load i32, i32* %16
%566 = load i32, i32* %17
%567 = load i32, i32* %21
%568 = load double*, double** %13
%569 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %563, i32 %564, i32 %565, i32 %566, i32 1, i32 0, i32 1, i32 %567, double* %25, double* %568)
%570 = load i32, i32* %14
%571 = load i32, i32* %15
%572 = load i32, i32* %16
%573 = load i32, i32* %17
%574 = load i32, i32* %21
%575 = load double, double* %18
%576 = load double, double* %24
%577 = load double, double* %25
%578 = load double*, double** %11
%579 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_upmulti to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %570, i32 %571, i32 %572, i32 %573, i32 1, i32 0, i32 1, i32 %574, double %575, double %576, double %577, double* %26, double* %578)
%580 = load i32, i32* %14
%581 = load i32, i32* %15
%582 = load i32, i32* %16
%583 = load i32, i32* %17
%584 = load i32, i32* %21
%585 = load double*, double** %11
%586 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %580, i32 %581, i32 %582, i32 %583, i32 1, i32 0, i32 %584, double* %27, double* %585)
%587 = load double, double* %26
%588 = load double, double* %24
%589 = load double, double* %22
%590 = call double @llvm.fmuladd.f64(double %587, double %588, double %589)
store double %590, double* %22
%591 = load double, double* %27
%592 = load double, double* %23
%593 = fadd double %592, %591
store double %593, double* %23
%594 = load i32, i32* %14
%595 = load i32, i32* %15
%596 = load i32, i32* %16
%597 = load i32, i32* %17
%598 = load i32, i32* %21
%599 = load double*, double** %13
%600 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %594, i32 %595, i32 %596, i32 %597, i32 -1, i32 0, i32 0, i32 %598, double* %24, double* %599)
%601 = load i32, i32* %14
%602 = load i32, i32* %15
%603 = load i32, i32* %16
%604 = load i32, i32* %17
%605 = load i32, i32* %21
%606 = load double*, double** %13
%607 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %601, i32 %602, i32 %603, i32 %604, i32 -1, i32 0, i32 1, i32 %605, double* %25, double* %606)
%608 = load i32, i32* %14
%609 = load i32, i32* %15
%610 = load i32, i32* %16
%611 = load i32, i32* %17
%612 = load i32, i32* %21
%613 = load double, double* %18
%614 = load double, double* %24
%615 = load double, double* %25
%616 = load double*, double** %11
%617 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_upmulti to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %608, i32 %609, i32 %610, i32 %611, i32 -1, i32 0, i32 -1, i32 %612, double %613, double %614, double %615, double* %26, double* %616)
%618 = load i32, i32* %14
%619 = load i32, i32* %15
%620 = load i32, i32* %16
%621 = load i32, i32* %17
%622 = load i32, i32* %21
%623 = load double*, double** %11
%624 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %618, i32 %619, i32 %620, i32 %621, i32 -1, i32 0, i32 %622, double* %27, double* %623)
%625 = load double, double* %26
%626 = load double, double* %24
%627 = load double, double* %22
%628 = fneg double %625
%629 = call double @llvm.fmuladd.f64(double %628, double %626, double %627)
store double %629, double* %22
%630 = load double, double* %27
%631 = load double, double* %23
%632 = fadd double %631, %630
store double %632, double* %23
%633 = load i32, i32* %14
%634 = load i32, i32* %15
%635 = load i32, i32* %16
%636 = load i32, i32* %17
%637 = load i32, i32* %21
%638 = load double*, double** %13
%639 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %633, i32 %634, i32 %635, i32 %636, i32 0, i32 1, i32 1, i32 %637, double* %24, double* %638)
%640 = load i32, i32* %14
%641 = load i32, i32* %15
%642 = load i32, i32* %16
%643 = load i32, i32* %17
%644 = load i32, i32* %21
%645 = load double*, double** %13
%646 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %640, i32 %641, i32 %642, i32 %643, i32 0, i32 1, i32 0, i32 %644, double* %25, double* %645)
%647 = load i32, i32* %14
%648 = load i32, i32* %15
%649 = load i32, i32* %16
%650 = load i32, i32* %17
%651 = load i32, i32* %21
%652 = load double, double* %18
%653 = load double, double* %24
%654 = load double, double* %25
%655 = load double*, double** %11
%656 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_upmulti to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %647, i32 %648, i32 %649, i32 %650, i32 0, i32 1, i32 1, i32 %651, double %652, double %653, double %654, double* %26, double* %655)
%657 = load i32, i32* %14
%658 = load i32, i32* %15
%659 = load i32, i32* %16
%660 = load i32, i32* %17
%661 = load i32, i32* %21
%662 = load double*, double** %11
%663 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %657, i32 %658, i32 %659, i32 %660, i32 0, i32 1, i32 %661, double* %27, double* %662)
%664 = load double, double* %26
%665 = load double, double* %24
%666 = load double, double* %22
%667 = call double @llvm.fmuladd.f64(double %664, double %665, double %666)
store double %667, double* %22
%668 = load double, double* %27
%669 = load double, double* %23
%670 = fadd double %669, %668
store double %670, double* %23
%671 = load i32, i32* %14
%672 = load i32, i32* %15
%673 = load i32, i32* %16
%674 = load i32, i32* %17
%675 = load i32, i32* %21
%676 = load double*, double** %13
%677 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %671, i32 %672, i32 %673, i32 %674, i32 0, i32 -1, i32 1, i32 %675, double* %24, double* %676)
%678 = load i32, i32* %14
%679 = load i32, i32* %15
%680 = load i32, i32* %16
%681 = load i32, i32* %17
%682 = load i32, i32* %21
%683 = load double*, double** %13
%684 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %678, i32 %679, i32 %680, i32 %681, i32 0, i32 -1, i32 0, i32 %682, double* %25, double* %683)
%685 = load i32, i32* %14
%686 = load i32, i32* %15
%687 = load i32, i32* %16
%688 = load i32, i32* %17
%689 = load i32, i32* %21
%690 = load double, double* %18
%691 = load double, double* %24
%692 = load double, double* %25
%693 = load double*, double** %11
%694 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_upmulti to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %685, i32 %686, i32 %687, i32 %688, i32 0, i32 -1, i32 -1, i32 %689, double %690, double %691, double %692, double* %26, double* %693)
%695 = load i32, i32* %14
%696 = load i32, i32* %15
%697 = load i32, i32* %16
%698 = load i32, i32* %17
%699 = load i32, i32* %21
%700 = load double*, double** %11
%701 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %695, i32 %696, i32 %697, i32 %698, i32 0, i32 -1, i32 %699, double* %27, double* %700)
%702 = load double, double* %26
%703 = load double, double* %24
%704 = load double, double* %22
%705 = fneg double %702
%706 = call double @llvm.fmuladd.f64(double %705, double %703, double %704)
store double %706, double* %22
%707 = load double, double* %27
%708 = load double, double* %23
%709 = fadd double %708, %707
store double %709, double* %23
br label %1029
710: ; preds = %552
%711 = load i32, i32* %20
%712 = icmp eq i32 %711, 5
br i1 %712, label %713, label %868
713: ; preds = %710
%714 = load i32, i32* %14
%715 = load i32, i32* %15
%716 = load i32, i32* %16
%717 = load i32, i32* %17
%718 = load i32, i32* %21
%719 = load double*, double** %13
%720 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %714, i32 %715, i32 %716, i32 %717, i32 1, i32 0, i32 0, i32 %718, double* %24, double* %719)
%721 = load i32, i32* %14
%722 = load i32, i32* %15
%723 = load i32, i32* %16
%724 = load i32, i32* %17
%725 = load i32, i32* %21
%726 = load double*, double** %13
%727 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %721, i32 %722, i32 %723, i32 %724, i32 1, i32 0, i32 1, i32 %725, double* %25, double* %726)
%728 = load i32, i32* %14
%729 = load i32, i32* %15
%730 = load i32, i32* %16
%731 = load i32, i32* %17
%732 = load i32, i32* %21
%733 = load double, double* %18
%734 = load double, double* %24
%735 = load double, double* %25
%736 = load double*, double** %11
%737 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia_simp to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %728, i32 %729, i32 %730, i32 %731, i32 1, i32 0, i32 1, i32 %732, double %733, double %734, double %735, double* %26, double* %736)
%738 = load i32, i32* %14
%739 = load i32, i32* %15
%740 = load i32, i32* %16
%741 = load i32, i32* %17
%742 = load i32, i32* %21
%743 = load double*, double** %11
%744 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %738, i32 %739, i32 %740, i32 %741, i32 1, i32 0, i32 %742, double* %27, double* %743)
%745 = load double, double* %26
%746 = load double, double* %24
%747 = load double, double* %22
%748 = call double @llvm.fmuladd.f64(double %745, double %746, double %747)
store double %748, double* %22
%749 = load double, double* %27
%750 = load double, double* %23
%751 = fadd double %750, %749
store double %751, double* %23
%752 = load i32, i32* %14
%753 = load i32, i32* %15
%754 = load i32, i32* %16
%755 = load i32, i32* %17
%756 = load i32, i32* %21
%757 = load double*, double** %13
%758 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %752, i32 %753, i32 %754, i32 %755, i32 -1, i32 0, i32 0, i32 %756, double* %24, double* %757)
%759 = load i32, i32* %14
%760 = load i32, i32* %15
%761 = load i32, i32* %16
%762 = load i32, i32* %17
%763 = load i32, i32* %21
%764 = load double*, double** %13
%765 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %759, i32 %760, i32 %761, i32 %762, i32 -1, i32 0, i32 1, i32 %763, double* %25, double* %764)
%766 = load i32, i32* %14
%767 = load i32, i32* %15
%768 = load i32, i32* %16
%769 = load i32, i32* %17
%770 = load i32, i32* %21
%771 = load double, double* %18
%772 = load double, double* %24
%773 = load double, double* %25
%774 = load double*, double** %11
%775 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia_simp to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %766, i32 %767, i32 %768, i32 %769, i32 -1, i32 0, i32 -1, i32 %770, double %771, double %772, double %773, double* %26, double* %774)
%776 = load i32, i32* %14
%777 = load i32, i32* %15
%778 = load i32, i32* %16
%779 = load i32, i32* %17
%780 = load i32, i32* %21
%781 = load double*, double** %11
%782 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %776, i32 %777, i32 %778, i32 %779, i32 -1, i32 0, i32 %780, double* %27, double* %781)
%783 = load double, double* %26
%784 = load double, double* %24
%785 = load double, double* %22
%786 = fneg double %783
%787 = call double @llvm.fmuladd.f64(double %786, double %784, double %785)
store double %787, double* %22
%788 = load double, double* %27
%789 = load double, double* %23
%790 = fadd double %789, %788
store double %790, double* %23
%791 = load i32, i32* %14
%792 = load i32, i32* %15
%793 = load i32, i32* %16
%794 = load i32, i32* %17
%795 = load i32, i32* %21
%796 = load double*, double** %13
%797 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %791, i32 %792, i32 %793, i32 %794, i32 0, i32 1, i32 1, i32 %795, double* %24, double* %796)
%798 = load i32, i32* %14
%799 = load i32, i32* %15
%800 = load i32, i32* %16
%801 = load i32, i32* %17
%802 = load i32, i32* %21
%803 = load double*, double** %13
%804 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %798, i32 %799, i32 %800, i32 %801, i32 0, i32 1, i32 0, i32 %802, double* %25, double* %803)
%805 = load i32, i32* %14
%806 = load i32, i32* %15
%807 = load i32, i32* %16
%808 = load i32, i32* %17
%809 = load i32, i32* %21
%810 = load double, double* %18
%811 = load double, double* %24
%812 = load double, double* %25
%813 = load double*, double** %11
%814 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia_simp to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %805, i32 %806, i32 %807, i32 %808, i32 0, i32 1, i32 1, i32 %809, double %810, double %811, double %812, double* %26, double* %813)
%815 = load i32, i32* %14
%816 = load i32, i32* %15
%817 = load i32, i32* %16
%818 = load i32, i32* %17
%819 = load i32, i32* %21
%820 = load double*, double** %11
%821 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %815, i32 %816, i32 %817, i32 %818, i32 0, i32 1, i32 %819, double* %27, double* %820)
%822 = load double, double* %26
%823 = load double, double* %24
%824 = load double, double* %22
%825 = call double @llvm.fmuladd.f64(double %822, double %823, double %824)
store double %825, double* %22
%826 = load double, double* %27
%827 = load double, double* %23
%828 = fadd double %827, %826
store double %828, double* %23
%829 = load i32, i32* %14
%830 = load i32, i32* %15
%831 = load i32, i32* %16
%832 = load i32, i32* %17
%833 = load i32, i32* %21
%834 = load double*, double** %13
%835 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %829, i32 %830, i32 %831, i32 %832, i32 0, i32 -1, i32 1, i32 %833, double* %24, double* %834)
%836 = load i32, i32* %14
%837 = load i32, i32* %15
%838 = load i32, i32* %16
%839 = load i32, i32* %17
%840 = load i32, i32* %21
%841 = load double*, double** %13
%842 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %836, i32 %837, i32 %838, i32 %839, i32 0, i32 -1, i32 0, i32 %840, double* %25, double* %841)
%843 = load i32, i32* %14
%844 = load i32, i32* %15
%845 = load i32, i32* %16
%846 = load i32, i32* %17
%847 = load i32, i32* %21
%848 = load double, double* %18
%849 = load double, double* %24
%850 = load double, double* %25
%851 = load double*, double** %11
%852 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia_simp to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %843, i32 %844, i32 %845, i32 %846, i32 0, i32 -1, i32 -1, i32 %847, double %848, double %849, double %850, double* %26, double* %851)
%853 = load i32, i32* %14
%854 = load i32, i32* %15
%855 = load i32, i32* %16
%856 = load i32, i32* %17
%857 = load i32, i32* %21
%858 = load double*, double** %11
%859 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %853, i32 %854, i32 %855, i32 %856, i32 0, i32 -1, i32 %857, double* %27, double* %858)
%860 = load double, double* %26
%861 = load double, double* %24
%862 = load double, double* %22
%863 = fneg double %860
%864 = call double @llvm.fmuladd.f64(double %863, double %861, double %862)
store double %864, double* %22
%865 = load double, double* %27
%866 = load double, double* %23
%867 = fadd double %866, %865
store double %867, double* %23
br label %1028
868: ; preds = %710
%869 = load i32, i32* %20
%870 = icmp eq i32 %869, 6
br i1 %870, label %871, label %1026
871: ; preds = %868
%872 = load i32, i32* %14
%873 = load i32, i32* %15
%874 = load i32, i32* %16
%875 = load i32, i32* %17
%876 = load i32, i32* %21
%877 = load double*, double** %13
%878 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %872, i32 %873, i32 %874, i32 %875, i32 1, i32 0, i32 0, i32 %876, double* %24, double* %877)
%879 = load i32, i32* %14
%880 = load i32, i32* %15
%881 = load i32, i32* %16
%882 = load i32, i32* %17
%883 = load i32, i32* %21
%884 = load double*, double** %13
%885 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %879, i32 %880, i32 %881, i32 %882, i32 1, i32 0, i32 1, i32 %883, double* %25, double* %884)
%886 = load i32, i32* %14
%887 = load i32, i32* %15
%888 = load i32, i32* %16
%889 = load i32, i32* %17
%890 = load i32, i32* %21
%891 = load double, double* %18
%892 = load double, double* %24
%893 = load double, double* %25
%894 = load double*, double** %11
%895 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %886, i32 %887, i32 %888, i32 %889, i32 1, i32 0, i32 1, i32 %890, double %891, double %892, double %893, double* %26, double* %894)
%896 = load i32, i32* %14
%897 = load i32, i32* %15
%898 = load i32, i32* %16
%899 = load i32, i32* %17
%900 = load i32, i32* %21
%901 = load double*, double** %11
%902 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %896, i32 %897, i32 %898, i32 %899, i32 1, i32 0, i32 %900, double* %27, double* %901)
%903 = load double, double* %26
%904 = load double, double* %24
%905 = load double, double* %22
%906 = call double @llvm.fmuladd.f64(double %903, double %904, double %905)
store double %906, double* %22
%907 = load double, double* %27
%908 = load double, double* %23
%909 = fadd double %908, %907
store double %909, double* %23
%910 = load i32, i32* %14
%911 = load i32, i32* %15
%912 = load i32, i32* %16
%913 = load i32, i32* %17
%914 = load i32, i32* %21
%915 = load double*, double** %13
%916 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %910, i32 %911, i32 %912, i32 %913, i32 -1, i32 0, i32 0, i32 %914, double* %24, double* %915)
%917 = load i32, i32* %14
%918 = load i32, i32* %15
%919 = load i32, i32* %16
%920 = load i32, i32* %17
%921 = load i32, i32* %21
%922 = load double*, double** %13
%923 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %917, i32 %918, i32 %919, i32 %920, i32 -1, i32 0, i32 1, i32 %921, double* %25, double* %922)
%924 = load i32, i32* %14
%925 = load i32, i32* %15
%926 = load i32, i32* %16
%927 = load i32, i32* %17
%928 = load i32, i32* %21
%929 = load double, double* %18
%930 = load double, double* %24
%931 = load double, double* %25
%932 = load double*, double** %11
%933 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %924, i32 %925, i32 %926, i32 %927, i32 -1, i32 0, i32 -1, i32 %928, double %929, double %930, double %931, double* %26, double* %932)
%934 = load i32, i32* %14
%935 = load i32, i32* %15
%936 = load i32, i32* %16
%937 = load i32, i32* %17
%938 = load i32, i32* %21
%939 = load double*, double** %11
%940 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %934, i32 %935, i32 %936, i32 %937, i32 -1, i32 0, i32 %938, double* %27, double* %939)
%941 = load double, double* %26
%942 = load double, double* %24
%943 = load double, double* %22
%944 = fneg double %941
%945 = call double @llvm.fmuladd.f64(double %944, double %942, double %943)
store double %945, double* %22
%946 = load double, double* %27
%947 = load double, double* %23
%948 = fadd double %947, %946
store double %948, double* %23
%949 = load i32, i32* %14
%950 = load i32, i32* %15
%951 = load i32, i32* %16
%952 = load i32, i32* %17
%953 = load i32, i32* %21
%954 = load double*, double** %13
%955 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %949, i32 %950, i32 %951, i32 %952, i32 0, i32 1, i32 1, i32 %953, double* %24, double* %954)
%956 = load i32, i32* %14
%957 = load i32, i32* %15
%958 = load i32, i32* %16
%959 = load i32, i32* %17
%960 = load i32, i32* %21
%961 = load double*, double** %13
%962 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %956, i32 %957, i32 %958, i32 %959, i32 0, i32 1, i32 0, i32 %960, double* %25, double* %961)
%963 = load i32, i32* %14
%964 = load i32, i32* %15
%965 = load i32, i32* %16
%966 = load i32, i32* %17
%967 = load i32, i32* %21
%968 = load double, double* %18
%969 = load double, double* %24
%970 = load double, double* %25
%971 = load double*, double** %11
%972 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %963, i32 %964, i32 %965, i32 %966, i32 0, i32 1, i32 1, i32 %967, double %968, double %969, double %970, double* %26, double* %971)
%973 = load i32, i32* %14
%974 = load i32, i32* %15
%975 = load i32, i32* %16
%976 = load i32, i32* %17
%977 = load i32, i32* %21
%978 = load double*, double** %11
%979 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %973, i32 %974, i32 %975, i32 %976, i32 0, i32 1, i32 %977, double* %27, double* %978)
%980 = load double, double* %26
%981 = load double, double* %24
%982 = load double, double* %22
%983 = call double @llvm.fmuladd.f64(double %980, double %981, double %982)
store double %983, double* %22
%984 = load double, double* %27
%985 = load double, double* %23
%986 = fadd double %985, %984
store double %986, double* %23
%987 = load i32, i32* %14
%988 = load i32, i32* %15
%989 = load i32, i32* %16
%990 = load i32, i32* %17
%991 = load i32, i32* %21
%992 = load double*, double** %13
%993 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %987, i32 %988, i32 %989, i32 %990, i32 0, i32 -1, i32 1, i32 %991, double* %24, double* %992)
%994 = load i32, i32* %14
%995 = load i32, i32* %15
%996 = load i32, i32* %16
%997 = load i32, i32* %17
%998 = load i32, i32* %21
%999 = load double*, double** %13
%1000 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_uface_2d to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %994, i32 %995, i32 %996, i32 %997, i32 0, i32 -1, i32 0, i32 %998, double* %25, double* %999)
%1001 = load i32, i32* %14
%1002 = load i32, i32* %15
%1003 = load i32, i32* %16
%1004 = load i32, i32* %17
%1005 = load i32, i32* %21
%1006 = load double, double* %18
%1007 = load double, double* %24
%1008 = load double, double* %25
%1009 = load double*, double** %11
%1010 = call i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...) bitcast (i32 (...)* @get_face_2d_utopia to i32 (i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double*, double*, ...)*)(i32 %1001, i32 %1002, i32 %1003, i32 %1004, i32 0, i32 -1, i32 -1, i32 %1005, double %1006, double %1007, double %1008, double* %26, double* %1009)
%1011 = load i32, i32* %14
%1012 = load i32, i32* %15
%1013 = load i32, i32* %16
%1014 = load i32, i32* %17
%1015 = load i32, i32* %21
%1016 = load double*, double** %11
%1017 = call i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @get_face_grad_2d to i32 (i32, i32, i32, i32, i32, i32, i32, double*, double*, ...)*)(i32 %1011, i32 %1012, i32 %1013, i32 %1014, i32 0, i32 -1, i32 %1015, double* %27, double* %1016)
%1018 = load double, double* %26
%1019 = load double, double* %24
%1020 = load double, double* %22
%1021 = fneg double %1018
%1022 = call double @llvm.fmuladd.f64(double %1021, double %1019, double %1020)
store double %1022, double* %22
%1023 = load double, double* %27
%1024 = load double, double* %23
%1025 = fadd double %1024, %1023
store double %1025, double* %23
br label %1027
1026: ; preds = %868
store double 0.000000e+00, double* %26
br label %1027
1027: ; preds = %1026, %871
br label %1028
1028: ; preds = %1027, %713
br label %1029
1029: ; preds = %1028, %555
br label %1030
1030: ; preds = %1029, %425
br label %1031
1031: ; preds = %1030, %295
br label %1032
1032: ; preds = %1031, %165
br label %1033
1033: ; preds = %1032, %35
%1034 = load double*, double** %11
%1035 = load i32, i32* %21
%1036 = sext i32 %1035 to i64
%1037 = getelementptr inbounds double, double* %1034, i64 %1036
%1038 = load double, double* %1037
%1039 = load double, double* %18
%1040 = fmul double 1.000000e+00, %1039
%1041 = load double, double* %19
%1042 = fmul double 1.000000e+00, %1041
%1043 = load double, double* %23
%1044 = load double, double* %22
%1045 = fneg double %1044
%1046 = call double @llvm.fmuladd.f64(double %1042, double %1043, double %1045)
%1047 = call double @llvm.fmuladd.f64(double %1040, double %1046, double %1038)
%1048 = load double*, double** %12
%1049 = load i32, i32* %21
%1050 = sext i32 %1049 to i64
%1051 = getelementptr inbounds double, double* %1048, i64 %1050
store double %1047, double* %1051
ret void
}

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