// File: /workspace/github_cpp_makefile_star2_O2/kaityo256[P]lj_simd/force_soa.cpp
// Function: force_avx2_swp()
void
force_avx2_swp(void) {
  const int pn = particle_number;
  const v4df vzero = _mm256_set_pd(0, 0, 0, 0);
  const v4df vcl2 = _mm256_set_pd(CL2, CL2, CL2, CL2);
  const v4df vc24 = _mm256_set_pd(24 * dt, 24 * dt, 24 * dt, 24 * dt);
  const v4df vc48 = _mm256_set_pd(48 * dt, 48 * dt, 48 * dt, 48 * dt);
  for (int i = 0; i < pn; i++) {
    const double qix = q[X][i];
    const double qiy = q[Y][i];
    const double qiz = q[Z][i];
    const int np = number_of_partners[i];
    double pfx = 0;
    double pfy = 0;
    double pfz = 0;
    const int kp = pointer[i];
    const v4df vqix = _mm256_set_pd(q[X][i], q[X][i], q[X][i], q[X][i]);
    const v4df vqiy = _mm256_set_pd(q[Y][i], q[Y][i], q[Y][i], q[Y][i]);
    const v4df vqiz = _mm256_set_pd(q[Z][i], q[Z][i], q[Z][i], q[Z][i]);
    int k = 0;
    int j_1 = sorted_list[kp + k];
    int j_2 = sorted_list[kp + k + 1];
    int j_3 = sorted_list[kp + k + 2];
    int j_4 = sorted_list[kp + k + 3];

    v4df vqjx = _mm256_set_pd(q[X][j_1], q[X][j_2], q[X][j_3], q[X][j_4]);
    v4df vqjy = _mm256_set_pd(q[Y][j_1], q[Y][j_2], q[Y][j_3], q[Y][j_4]);
    v4df vqjz = _mm256_set_pd(q[Z][j_1], q[Z][j_2], q[Z][j_3], q[Z][j_4]);

    v4df vdx = vqjx - vqix;
    v4df vdy = vqjy - vqiy;
    v4df vdz = vqjz - vqiz;
    v4df vr2 = vdx * vdx + vdy * vdy + vdz * vdz;
    v4df vr6 = vr2 * vr2 * vr2;
    v4df vdf = (vc24 * vr6 - vc48) / (vr6 * vr6 * vr2);
    v4df mask = vcl2 - vr2;
    vdf = _mm256_blendv_pd(vdf, vzero, mask);

    if (np < 4) {
      vdf =  _mm256_setzero_pd();
    }

    for (k = 4; k < (np / 4) * 4; k += 4) {
      int j_1_b = sorted_list[kp + k];
      int j_2_b = sorted_list[kp + k + 1];
      int j_3_b = sorted_list[kp + k + 2];
      int j_4_b = sorted_list[kp + k + 3];
      // We found that it was fastest to calculate only vqjx_b here.
      // If we calculate vqjy_b or vqjz_b here, it becomes very slow.
      v4df vqjx_b = _mm256_set_pd(q[X][j_1_b], q[X][j_2_b], q[X][j_3_b], q[X][j_4_b]);
      // --- 8< ---
      v4df vdfx = vdf * vdx;
      v4df vdfy = vdf * vdy;
      v4df vdfz = vdf * vdz;
      double *dfx = (double *)(&vdfx);
      double *dfy = (double *)(&vdfy);
      double *dfz = (double *)(&vdfz);

      pfx += dfx[3];
      pfy += dfy[3];
      pfz += dfz[3];

      p[X][j_1] -= dfx[3];
      p[Y][j_1] -= dfy[3];
      p[Z][j_1] -= dfz[3];

      pfx += dfx[2];
      pfy += dfy[2];
      pfz += dfz[2];
      p[X][j_2] -= dfx[2];
      p[Y][j_2] -= dfy[2];
      p[Z][j_2] -= dfz[2];

      pfx += dfx[1];
      pfy += dfy[1];
      pfz += dfz[1];
      p[X][j_3] -= dfx[1];
      p[Y][j_3] -= dfy[1];
      p[Z][j_3] -= dfz[1];

      pfx += dfx[0];
      pfy += dfy[0];
      pfz += dfz[0];
      p[X][j_4] -= dfx[0];
      p[Y][j_4] -= dfy[0];
      p[Z][j_4] -= dfz[0];

      // --- 8< ---
      v4df vqjy_b = _mm256_set_pd(q[Y][j_1_b], q[Y][j_2_b], q[Y][j_3_b], q[Y][j_4_b]);
      v4df vqjz_b = _mm256_set_pd(q[Z][j_1_b], q[Z][j_2_b], q[Z][j_3_b], q[Z][j_4_b]);

      j_1 = j_1_b;
      j_2 = j_2_b;
      j_3 = j_3_b;
      j_4 = j_4_b;

      vqjx = vqjx_b;
      vqjy = vqjy_b;
      vqjz = vqjz_b;

      vdx = vqjx - vqix;
      vdy = vqjy - vqiy;
      vdz = vqjz - vqiz;
      vr2 = vdx * vdx + vdy * vdy + vdz * vdz;
      vr6 = vr2 * vr2 * vr2;
      vdf = (vc24 * vr6 - vc48) / (vr6 * vr6 * vr2);
      mask = vcl2 - vr2;
      vdf = _mm256_blendv_pd(vdf, vzero, mask);
    }
    v4df vdfx = vdf * vdx;
    v4df vdfy = vdf * vdy;
    v4df vdfz = vdf * vdz;
    double *dfx = (double *)(&vdfx);
    double *dfy = (double *)(&vdfy);
    double *dfz = (double *)(&vdfz);

    pfx += dfx[3];
    pfy += dfy[3];
    pfz += dfz[3];

    p[X][j_1] -= dfx[3];
    p[Y][j_1] -= dfy[3];
    p[Z][j_1] -= dfz[3];

    pfx += dfx[2];
    pfy += dfy[2];
    pfz += dfz[2];
    p[X][j_2] -= dfx[2];
    p[Y][j_2] -= dfy[2];
    p[Z][j_2] -= dfz[2];

    pfx += dfx[1];
    pfy += dfy[1];
    pfz += dfz[1];
    p[X][j_3] -= dfx[1];
    p[Y][j_3] -= dfy[1];
    p[Z][j_3] -= dfz[1];

    pfx += dfx[0];
    pfy += dfy[0];
    pfz += dfz[0];
    p[X][j_4] -= dfx[0];
    p[Y][j_4] -= dfy[0];
    p[Z][j_4] -= dfz[0];



    p[X][i] += pfx;
    p[Y][i] += pfy;
    p[Z][i] += pfz;
    for (int k = (np / 4) * 4; k < np; k++) {
      const int j = sorted_list[kp + k];
      double dx = q[X][j] - qix;
      double dy = q[Y][j] - qiy;
      double dz = q[Z][j] - qiz;
      double r2 = (dx * dx + dy * dy + dz * dz);
      if (r2 > CL2) continue;
      double r6 = r2 * r2 * r2;
      double df = ((24.0 * r6 - 48.0) / (r6 * r6 * r2)) * dt;
      p[X][i] += df * dx;
      p[Y][i] += df * dy;
      p[Z][i] += df * dz;
      p[X][j] -= df * dx;
      p[Y][j] -= df * dy;
      p[Z][j] -= df * dz;
    }
  }

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
vbroadcastsd 0x1e00(%rip), %ymm0 # 0x4048
vbroadcastsd 0x1dff(%rip), %ymm1 # 0x4050
vbroadcastsd 0x1de6(%rip), %ymm2 # 0x4040
vmovsd 0x1dde(%rip), %xmm4     # 0x4040
vmovsd 0x1dbe(%rip), %xmm5     # 0x4028
vmovsd 0x1dbc(%rip), %xmm16    # 0x4030
vmovsd 0x1dba(%rip), %xmm25    # 0x4038
movl 0x19f488c(%rip), %eax   # 0x19f6b10
leaq 0x18a885(%rip), %r8     # 0x18cb10
leaq 0x7a15e8e(%rip), %r11   # 0x7a18120
leaq 0xdbf877(%rip), %r15    # 0xdc1b10
vxorpd %xmm3, %xmm3, %xmm3
xorl %edi, %edi
movl %eax, %ecx
sarl $0x1f, %ecx
andnl %eax, %ecx, %eax
movq %rax, -0x10(%rsp)
cmpq -0x10(%rsp), %rdi
je 0x2993
leaq 0x7708a60(%rip), %rdx   # 0x770ad20
vbroadcastsd 0x30d400(%r8,%rdi,8), %ymm9
vbroadcastsd (%r8,%rdi,8), %ymm8
vbroadcastsd 0x61a800(%r8,%rdi,8), %ymm10
leaq 0x19f483f(%rip), %rax   # 0x19f6b20
vmovapd %ymm0, %ymm15
movslq (%rdx,%rdi,4), %rbx
movslq (%rax,%rdi,4), %rcx
movslq 0xc(%r11,%rbx,4), %r10
movslq 0x4(%r11,%rbx,4), %rbp
movslq (%r11,%rbx,4), %r13
movslq 0x8(%r11,%rbx,4), %r9
vmovsd (%r8,%rbp,8), %xmm6
vmovsd (%r8,%r10,8), %xmm11
vmovsd 0x30d400(%r8,%r10,8), %xmm12
vmovsd 0x61a800(%r8,%r10,8), %xmm13
vmovhpd (%r8,%r13,8), %xmm6, %xmm6 # xmm6 = xmm6[0],mem[0]
vmovhpd (%r8,%r9,8), %xmm11, %xmm11 # xmm11 = xmm11[0],mem[0]
vmovhpd 0x30d400(%r8,%r9,8), %xmm12, %xmm12 # xmm12 = xmm12[0],mem[0]
vmovhpd 0x61a800(%r8,%r9,8), %xmm13, %xmm13 # xmm13 = xmm13[0],mem[0]
vinsertf128 $0x1, %xmm6, %ymm11, %ymm6
vmovsd 0x30d400(%r8,%rbp,8), %xmm11
vmovhpd 0x30d400(%r8,%r13,8), %xmm11, %xmm11 # xmm11 = xmm11[0],mem[0]
vinsertf128 $0x1, %xmm11, %ymm12, %ymm11
vmovsd 0x61a800(%r8,%rbp,8), %xmm12
vmovhpd 0x61a800(%r8,%r13,8), %xmm12, %xmm12 # xmm12 = xmm12[0],mem[0]
vinsertf128 $0x1, %xmm12, %ymm13, %ymm14
vsubpd %ymm9, %ymm11, %ymm12
vsubpd %ymm8, %ymm6, %ymm13
vsubpd %ymm10, %ymm14, %ymm11
vmulpd %ymm12, %ymm12, %ymm14
vfmadd231pd %ymm13, %ymm13, %ymm14 # ymm14 = (ymm13 * ymm13) + ymm14
vfmadd231pd %ymm11, %ymm11, %ymm14 # ymm14 = (ymm11 * ymm11) + ymm14
vmulpd %ymm14, %ymm14, %ymm6
vmulpd %ymm6, %ymm14, %ymm17
vxorpd %xmm6, %xmm6, %xmm6
vfmadd213pd %ymm1, %ymm17, %ymm15 # ymm15 = (ymm17 * ymm15) + ymm1
cmpq $0x4, %rcx
jl 0x23d0
vmulpd %ymm17, %ymm17, %ymm17
vmulpd %ymm17, %ymm14, %ymm17
vsubpd %ymm14, %ymm2, %ymm14
vdivpd %ymm17, %ymm15, %ymm15
vblendvpd %ymm14, %ymm6, %ymm15, %ymm6
movl %ecx, %eax
cltd
movl $0x4, %esi
vxorpd %xmm14, %xmm14, %xmm14
movabsq $0x4, %r14
vxorpd %xmm15, %xmm15, %xmm15
vxorpd %xmm17, %xmm17, %xmm17
idivl %esi
leaq (%r11,%rbx,4), %rdx
movq %rbx, -0x8(%rsp)
shll $0x2, %eax
cltq
movslq %r13d, %r12
movslq %ebp, %r11
movslq %r9d, %rsi
movslq %r10d, %rbx
cmpq %rax, %r14
jge 0x26af
movslq 0x4(%rdx,%r14,4), %rbp
movslq 0xc(%rdx,%r14,4), %r10
movslq (%rdx,%r14,4), %r13
movslq 0x8(%rdx,%r14,4), %r9
vmovsd (%r15,%r12,8), %xmm24
vmulpd %ymm6, %ymm13, %ymm13
vmulpd %ymm6, %ymm12, %ymm12
vmulpd %ymm6, %ymm11, %ymm6
addq $0x4, %r14
vextractf128 $0x1, %ymm13, %xmm11
vextractf32x4 $0x1, %ymm12, %xmm20
vextractf32x4 $0x1, %ymm6, %xmm22
vmovsd (%r8,%rbp,8), %xmm18
vmovsd (%r8,%r10,8), %xmm19
vshufpd $0x1, %xmm20, %xmm20, %xmm21 # xmm21 = xmm20[1,0]
vshufpd $0x1, %xmm22, %xmm22, %xmm23 # xmm23 = xmm22[1,0]
vmovhpd (%r8,%r13,8), %xmm18, %xmm18 # xmm18 = xmm18[0],mem[0]
vmovhpd (%r8,%r9,8), %xmm19, %xmm19 # xmm19 = xmm19[0],mem[0]
vaddsd %xmm15, %xmm21, %xmm15
vaddsd %xmm14, %xmm23, %xmm14
vaddsd %xmm15, %xmm20, %xmm15
vaddsd %xmm14, %xmm22, %xmm14
vinsertf32x4 $0x1, %xmm18, %ymm19, %ymm18
vshufpd $0x1, %xmm11, %xmm11, %xmm19 # xmm19 = xmm11[1,0]
vaddsd %xmm17, %xmm19, %xmm17
vsubsd %xmm19, %xmm24, %xmm19
vmovsd %xmm19, (%r15,%r12,8)
vaddsd %xmm17, %xmm11, %xmm17
vmovsd 0x30d400(%r15,%r12,8), %xmm19
vsubsd %xmm21, %xmm19, %xmm19
vmovsd %xmm19, 0x30d400(%r15,%r12,8)
vmovsd 0x61a800(%r15,%r12,8), %xmm19
vsubsd %xmm23, %xmm19, %xmm19
vmovsd %xmm19, 0x61a800(%r15,%r12,8)
vmovsd (%r15,%r11,8), %xmm19
vsubsd %xmm11, %xmm19, %xmm11
vshufpd $0x1, %xmm12, %xmm12, %xmm19 # xmm19 = xmm12[1,0]
vaddsd %xmm15, %xmm19, %xmm15
vmovsd %xmm11, (%r15,%r11,8)
vmovsd 0x30d400(%r15,%r11,8), %xmm11
vaddsd %xmm15, %xmm12, %xmm15
vsubsd %xmm20, %xmm11, %xmm11
vshufpd $0x1, %xmm6, %xmm6, %xmm20 # xmm20 = xmm6[1,0]
vaddsd %xmm14, %xmm20, %xmm14
vmovsd %xmm11, 0x30d400(%r15,%r11,8)
vmovsd 0x61a800(%r15,%r11,8), %xmm11
vaddsd %xmm6, %xmm14, %xmm14
vsubsd %xmm22, %xmm11, %xmm11
vmovsd %xmm11, 0x61a800(%r15,%r11,8)
vshufpd $0x1, %xmm13, %xmm13, %xmm11 # xmm11 = xmm13[1,0]
vmovsd (%r15,%rsi,8), %xmm21
vaddsd %xmm17, %xmm11, %xmm17
vaddsd %xmm17, %xmm13, %xmm17
vsubsd %xmm11, %xmm21, %xmm11
vmovsd %xmm11, (%r15,%rsi,8)
vmovsd 0x30d400(%r15,%rsi,8), %xmm11
vsubsd %xmm19, %xmm11, %xmm11
vmovapd %ymm0, %ymm19
vmovsd %xmm11, 0x30d400(%r15,%rsi,8)
vmovsd 0x61a800(%r15,%rsi,8), %xmm11
vsubsd %xmm20, %xmm11, %xmm11
vmovsd %xmm11, 0x61a800(%r15,%rsi,8)
vmovsd (%r15,%rbx,8), %xmm11
vsubsd %xmm13, %xmm11, %xmm11
vsubpd %ymm8, %ymm18, %ymm13
vmovsd %xmm11, (%r15,%rbx,8)
vmovsd 0x30d400(%r15,%rbx,8), %xmm11
vsubsd %xmm12, %xmm11, %xmm11
vmovsd 0x61a800(%r8,%r10,8), %xmm12
vmovhpd 0x61a800(%r8,%r9,8), %xmm12, %xmm12 # xmm12 = xmm12[0],mem[0]
vmovsd %xmm11, 0x30d400(%r15,%rbx,8)
vmovsd 0x61a800(%r15,%rbx,8), %xmm11
vsubsd %xmm6, %xmm11, %xmm6
vmovsd 0x30d400(%r8,%r10,8), %xmm11
vmovhpd 0x30d400(%r8,%r9,8), %xmm11, %xmm11 # xmm11 = xmm11[0],mem[0]
vmovsd %xmm6, 0x61a800(%r15,%rbx,8)
vmovsd 0x30d400(%r8,%rbp,8), %xmm6
vmovhpd 0x30d400(%r8,%r13,8), %xmm6, %xmm6 # xmm6 = xmm6[0],mem[0]
vinsertf128 $0x1, %xmm6, %ymm11, %ymm6
vmovsd 0x61a800(%r8,%rbp,8), %xmm11
vmovhpd 0x61a800(%r8,%r13,8), %xmm11, %xmm11 # xmm11 = xmm11[0],mem[0]
vinsertf128 $0x1, %xmm11, %ymm12, %ymm11
vsubpd %ymm9, %ymm6, %ymm12
vsubpd %ymm10, %ymm11, %ymm11
vmulpd %ymm12, %ymm12, %ymm6
vfmadd231pd %ymm13, %ymm13, %ymm6 # ymm6 = (ymm13 * ymm13) + ymm6
vfmadd231pd %ymm11, %ymm11, %ymm6 # ymm6 = (ymm11 * ymm11) + ymm6
vmulpd %ymm6, %ymm6, %ymm18
vmulpd %ymm18, %ymm6, %ymm18
vfmadd213pd %ymm1, %ymm18, %ymm19 # ymm19 = (ymm18 * ymm19) + ymm1
vmulpd %ymm18, %ymm18, %ymm18
vmulpd %ymm18, %ymm6, %ymm18
vsubpd %ymm6, %ymm2, %ymm6
vdivpd %ymm18, %ymm19, %ymm7
vblendvpd %ymm6, %ymm3, %ymm7, %ymm6
jmp 0x2402
vmovsd (%r15,%r12,8), %xmm22
vmulpd %ymm6, %ymm13, %ymm7
vmulpd %ymm6, %ymm12, %ymm12
vmulpd %ymm6, %ymm11, %ymm6
movq -0x8(%rsp), %rdx
vextractf128 $0x1, %ymm7, %xmm11
vextractf32x4 $0x1, %ymm12, %xmm18
vextractf32x4 $0x1, %ymm6, %xmm20
vshufpd $0x1, %xmm11, %xmm11, %xmm13 # xmm13 = xmm11[1,0]
vshufpd $0x1, %xmm18, %xmm18, %xmm19 # xmm19 = xmm18[1,0]
vshufpd $0x1, %xmm20, %xmm20, %xmm21 # xmm21 = xmm20[1,0]
addq %rax, %rdx
vaddsd %xmm17, %xmm13, %xmm17
vaddsd %xmm15, %xmm19, %xmm15
vaddsd %xmm14, %xmm21, %xmm14
vsubsd %xmm13, %xmm22, %xmm13
vaddsd %xmm15, %xmm18, %xmm15
vaddsd %xmm14, %xmm20, %xmm14
vmovsd %xmm13, (%r15,%r12,8)
vmovsd 0x30d400(%r15,%r12,8), %xmm13
vsubsd %xmm19, %xmm13, %xmm13
vmovsd %xmm13, 0x30d400(%r15,%r12,8)
vmovsd 0x61a800(%r15,%r12,8), %xmm13
vsubsd %xmm21, %xmm13, %xmm13
vmovsd %xmm13, 0x61a800(%r15,%r12,8)
vaddsd %xmm17, %xmm11, %xmm13
vmovsd (%r15,%r11,8), %xmm17
vsubsd %xmm11, %xmm17, %xmm11
vshufpd $0x1, %xmm12, %xmm12, %xmm17 # xmm17 = xmm12[1,0]
vaddsd %xmm15, %xmm17, %xmm15
vmovsd %xmm11, (%r15,%r11,8)
vmovsd 0x30d400(%r15,%r11,8), %xmm11
vsubsd %xmm18, %xmm11, %xmm11
vshufpd $0x1, %xmm6, %xmm6, %xmm18 # xmm18 = xmm6[1,0]
vaddsd %xmm14, %xmm18, %xmm14
vmovsd %xmm11, 0x30d400(%r15,%r11,8)
vmovsd 0x61a800(%r15,%r11,8), %xmm11
vaddsd %xmm6, %xmm14, %xmm14
vsubsd %xmm20, %xmm11, %xmm11
vmovsd %xmm11, 0x61a800(%r15,%r11,8)
vshufpd $0x1, %xmm7, %xmm7, %xmm11 # xmm11 = xmm7[1,0]
leaq 0x7a15959(%rip), %r11   # 0x7a18120
vmovsd (%r15,%rsi,8), %xmm19
vaddsd %xmm13, %xmm11, %xmm13
leaq (%r11,%rdx,4), %rdx
vsubsd %xmm11, %xmm19, %xmm11
vmovsd %xmm11, (%r15,%rsi,8)
vmovsd 0x30d400(%r15,%rsi,8), %xmm11
vsubsd %xmm17, %xmm11, %xmm11
vmovsd %xmm11, 0x30d400(%r15,%rsi,8)
vmovsd 0x61a800(%r15,%rsi,8), %xmm11
vsubsd %xmm18, %xmm11, %xmm11
vmovsd %xmm11, 0x61a800(%r15,%rsi,8)
vaddsd %xmm7, %xmm13, %xmm11
vaddsd %xmm15, %xmm12, %xmm13
vmovsd (%r15,%rbx,8), %xmm15
vsubsd %xmm7, %xmm15, %xmm7
vmovsd %xmm7, (%r15,%rbx,8)
vmovsd 0x30d400(%r15,%rbx,8), %xmm7
vsubsd %xmm12, %xmm7, %xmm7
vmovsd %xmm7, 0x30d400(%r15,%rbx,8)
vmovsd 0x61a800(%r15,%rbx,8), %xmm7
vsubsd %xmm6, %xmm7, %xmm6
vmovsd %xmm6, 0x61a800(%r15,%rbx,8)
vaddsd (%r15,%rdi,8), %xmm11, %xmm6
vmovsd %xmm6, (%r15,%rdi,8)
vaddsd 0x30d400(%r15,%rdi,8), %xmm13, %xmm6
vmovsd %xmm6, 0x30d400(%r15,%rdi,8)
vaddsd 0x61a800(%r15,%rdi,8), %xmm14, %xmm6
vmovsd %xmm6, 0x61a800(%r15,%rdi,8)
cmpq %rcx, %rax
jge 0x298b
movslq (%rdx), %rsi
vmovsd (%r8,%rsi,8), %xmm6
vsubsd %xmm8, %xmm6, %xmm12
vmovsd 0x30d400(%r8,%rsi,8), %xmm6
vsubsd %xmm9, %xmm6, %xmm11
vmovsd 0x61a800(%r8,%rsi,8), %xmm6
vmulsd %xmm11, %xmm11, %xmm13
vfmadd231sd %xmm12, %xmm12, %xmm13 # xmm13 = (xmm12 * xmm12) + xmm13
vsubsd %xmm10, %xmm6, %xmm6
vfmadd231sd %xmm6, %xmm6, %xmm13 # xmm13 = (xmm6 * xmm6) + xmm13
vucomisd %xmm4, %xmm13
ja 0x297f
vmulsd %xmm13, %xmm13, %xmm7
vmovapd %xmm5, %xmm14
vmulsd %xmm7, %xmm13, %xmm7
vfmadd213sd %xmm16, %xmm7, %xmm14 # xmm14 = (xmm7 * xmm14) + xmm16
vmulsd %xmm7, %xmm7, %xmm7
vmulsd %xmm7, %xmm13, %xmm7
vmovsd (%r15,%rdi,8), %xmm13
vdivsd %xmm7, %xmm14, %xmm7
vmulsd %xmm25, %xmm7, %xmm7
vfmadd231sd %xmm12, %xmm7, %xmm13 # xmm13 = (xmm7 * xmm12) + xmm13
vmovsd %xmm13, (%r15,%rdi,8)
vmovsd 0x30d400(%r15,%rdi,8), %xmm13
vfmadd231sd %xmm11, %xmm7, %xmm13 # xmm13 = (xmm7 * xmm11) + xmm13
vmovsd %xmm13, 0x30d400(%r15,%rdi,8)
vmovsd 0x61a800(%r15,%rdi,8), %xmm13
vfmadd231sd %xmm6, %xmm7, %xmm13 # xmm13 = (xmm7 * xmm6) + xmm13
vmovsd %xmm13, 0x61a800(%r15,%rdi,8)
vfnmadd213sd (%r15,%rsi,8), %xmm7, %xmm12 # xmm12 = -(xmm7 * xmm12) + mem
vmovsd %xmm12, (%r15,%rsi,8)
vfnmadd213sd 0x30d400(%r15,%rsi,8), %xmm7, %xmm11 # xmm11 = -(xmm7 * xmm11) + mem
vmovsd %xmm11, 0x30d400(%r15,%rsi,8)
vfnmadd213sd 0x61a800(%r15,%rsi,8), %xmm7, %xmm6 # xmm6 = -(xmm7 * xmm6) + mem
vmovsd %xmm6, 0x61a800(%r15,%rsi,8)
incq %rax
addq $0x4, %rdx
jmp 0x2895
incq %rdi
jmp 0x22ae
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
vzeroupper
retq