diff --git a/src/runner_doiact_vec.c b/src/runner_doiact_vec.c
index 4c3f8454097611ab924358735b4b38a3b52ccfd6..6353959876788602fde05364f907511d5afa0ab5 100644
--- a/src/runner_doiact_vec.c
+++ b/src/runner_doiact_vec.c
@@ -858,504 +858,6 @@ __attribute__((always_inline)) INLINE void runner_doself1_density_vec(
 __attribute__((always_inline)) INLINE void runner_doself2_force_vec(
     struct runner *r, struct cell *restrict c) {
 
-#ifdef WITH_VECTORIZATION
-  //static int intCount = 0;
-  const struct engine *e = r->e;
-  int doi_mask;
-  struct part *restrict pi;
-  int count_align;
-  int num_vec_proc = 1;//NUM_VEC_PROC;
-
-  struct part *piq[VEC_SIZE], *pjq[VEC_SIZE];
-
-  struct part *restrict parts = c->parts;
-  const int count = c->count;
-
-  vector v_hi, v_hig2, v_r2;
-
-  //TIMER_TIC
-
-  if (!cell_is_active(c, e)) return;
-
-  if (!cell_is_drifted(c, e)) cell_drift_particles(c, e);
-
-  /* Get the particle cache from the runner and re-allocate
-   * the cache if it is not big enough for the cell. */
-  struct cache *restrict cell_cache = &r->ci_cache;
-
-  if (cell_cache->count < count) {
-    cache_init(cell_cache, count);
-  }
-
-  /* Read the particles from the cell and store them locally in the cache. */
-  cache_read_particles(c, cell_cache);
-
-  /* Create secondary cache to store particle interactions. */
-  //struct c2_cache int_cache;
-  //int icount = 0, icount_align = 0;
-
-  /* Loop over the particles in the cell. */
-  for (int pid = 0; pid < count; pid++) {
-
-    /* Get a pointer to the ith particle. */
-    pi = &parts[pid];
-
-    /* Is the ith particle active? */
-    if (!part_is_active(pi, e)) continue;
-
-    vector pix, piy, piz;
-
-    const float hi = cell_cache->h[pid];
-
-    /* Fill particle pi vectors. */
-    pix.v = vec_set1(cell_cache->x[pid]);
-    piy.v = vec_set1(cell_cache->y[pid]);
-    piz.v = vec_set1(cell_cache->z[pid]);
-    v_hi.v = vec_set1(hi);
-
-    const float hig2 = hi * hi * kernel_gamma2;
-    v_hig2.v = vec_set1(hig2);
-
-    /* Reset cumulative sums of update vectors. */
-    vector a_hydro_xSum, a_hydro_ySum, a_hydro_zSum, h_dtSum, v_sigSum, entropy_dtSum;
-
-    /* Get the inverse of hi. */
-    vector v_hi_inv;
-
-    v_hi_inv = vec_reciprocal(v_hi);
-
-    a_hydro_xSum.v = vec_setzero();
-    a_hydro_ySum.v = vec_setzero();
-    a_hydro_zSum.v = vec_setzero();
-    h_dtSum.v = vec_setzero();
-    v_sigSum.v = vec_set1(pi->force.v_sig);
-    entropy_dtSum.v = vec_setzero();
-
-    /* Pad cache if there is a serial remainder. */
-    count_align = count;
-    int rem = count % (num_vec_proc * VEC_SIZE);
-    if (rem != 0) {
-      int pad = (num_vec_proc * VEC_SIZE) - rem;
-
-      count_align += pad;
-
-      /* Set positions to the same as particle pi so when the r2 > 0 mask is
-       * applied these extra contributions are masked out.*/
-      for (int i = count; i < count_align; i++) {
-        cell_cache->x[i] = pix.f[0];
-        cell_cache->y[i] = piy.f[0];
-        cell_cache->z[i] = piz.f[0];
-      }
-    }
-
-    vector pjx, pjy, pjz;
-    //vector pjvx, pjvy, pjvz, mj;
-    vector hj, hjg2;
-    //vector pjx2, pjy2, pjz2;
-    //vector pjvx2, pjvy2, pjvz2, mj2, hj_2, hjg2_2;
-
-    for(int k=0; k<VEC_SIZE; k++)
-      piq[k] = pi;
-
-    /* Find all of particle pi's interacions and store needed values in the
-     * secondary cache.*/
-    for (int pjd = 0; pjd < count_align; pjd += (num_vec_proc * VEC_SIZE)) {
-
-      /* Load 2 sets of vectors from the particle cache. */
-      pjx.v = vec_load(&cell_cache->x[pjd]);
-      pjy.v = vec_load(&cell_cache->y[pjd]);
-      pjz.v = vec_load(&cell_cache->z[pjd]);
-      //pjvx.v = vec_load(&cell_cache->vx[pjd]);
-      //pjvy.v = vec_load(&cell_cache->vy[pjd]);
-      //pjvz.v = vec_load(&cell_cache->vz[pjd]);
-      //mj.v = vec_load(&cell_cache->m[pjd]);
-    
-      hj.v = vec_load(&cell_cache->h[pjd]);
-      hjg2.v = vec_mul(vec_mul(hj.v,hj.v), kernel_gamma2_vec.v);
-
-      //pjx2.v = vec_load(&cell_cache->x[pjd + VEC_SIZE]);
-      //pjy2.v = vec_load(&cell_cache->y[pjd + VEC_SIZE]);
-      //pjz2.v = vec_load(&cell_cache->z[pjd + VEC_SIZE]);
-      //pjvx2.v = vec_load(&cell_cache->vx[pjd + VEC_SIZE]);
-      //pjvy2.v = vec_load(&cell_cache->vy[pjd + VEC_SIZE]);
-      //pjvz2.v = vec_load(&cell_cache->vz[pjd + VEC_SIZE]);
-      //mj2.v = vec_load(&cell_cache->m[pjd + VEC_SIZE]);
-
-      //hj_2.v = vec_load(&cell_cache->h[pjd + VEC_SIZE]);
-      //hjg2_2.v = vec_mul(vec_mul(hj_2.v,hj_2.v), kernel_gamma2_vec.v);
-
-      vector v_hj_inv;
-
-      v_hj_inv = vec_reciprocal(hj);
-
-      /* Compute the pairwise distance. */
-      vector v_dx_tmp, v_dy_tmp, v_dz_tmp;
-      //vector v_dx_tmp2, v_dy_tmp2, v_dz_tmp2, v_r2_2;
-
-      v_dx_tmp.v = vec_sub(pix.v, pjx.v);
-      //v_dx_tmp2.v = vec_sub(pix.v, pjx2.v);
-      v_dy_tmp.v = vec_sub(piy.v, pjy.v);
-      //v_dy_tmp2.v = vec_sub(piy.v, pjy2.v);
-      v_dz_tmp.v = vec_sub(piz.v, pjz.v);
-      //v_dz_tmp2.v = vec_sub(piz.v, pjz2.v);
-
-      v_r2.v = vec_mul(v_dx_tmp.v, v_dx_tmp.v);
-      //v_r2_2.v = vec_mul(v_dx_tmp2.v, v_dx_tmp2.v);
-      v_r2.v = vec_fma(v_dy_tmp.v, v_dy_tmp.v, v_r2.v);
-      //v_r2_2.v = vec_fma(v_dy_tmp2.v, v_dy_tmp2.v, v_r2_2.v);
-      v_r2.v = vec_fma(v_dz_tmp.v, v_dz_tmp.v, v_r2.v);
-      //v_r2_2.v = vec_fma(v_dz_tmp2.v, v_dz_tmp2.v, v_r2_2.v);
-
-/* Form a mask from r2 < hig2 and r2 > 0.*/
-#ifdef HAVE_AVX512_F
-      // KNL_MASK_16 doi_mask, doi_mask_check, doi_mask2, doi_mask2_check;
-      KNL_MASK_16 doi_mask_check, doi_mask2, doi_mask2_check;
-
-      doi_mask_check = vec_cmp_gt(v_r2.v, vec_setzero());
-      doi_mask = vec_cmp_lt(v_r2.v, v_hig2.v);
-
-      doi_mask2_check = vec_cmp_gt(v_r2_2.v, vec_setzero());
-      doi_mask2 = vec_cmp_lt(v_r2_2.v, v_hig2.v);
-
-      doi_mask = doi_mask & doi_mask_check;
-      doi_mask2 = doi_mask2 & doi_mask2_check;
-
-#else
-      vector v_doi_mask, v_doi_mask_check, v_doi_N3_mask;
-      //vector v_doi_mask2, v_doi_mask2_check, v_doi_N3_mask2;
-      //int doi_mask2;
-
-      /* Form r2 > 0 mask, r2 < hig2 mask and r2 < hjg2 mask. */
-      v_doi_mask_check.v = vec_cmp_gt(v_r2.v, vec_setzero());
-      v_doi_mask.v = vec_cmp_lt(v_r2.v, v_hig2.v);
-      v_doi_N3_mask.v = vec_cmp_lt(v_r2.v, hjg2.v);
-
-      /* Form r2 > 0 mask and r2 < hig2 mask. */
-      //v_doi_mask2_check.v = vec_cmp_gt(v_r2_2.v, vec_setzero());
-      //v_doi_mask2.v = vec_cmp_lt(v_r2_2.v, v_hig2.v);
-      //v_doi_N3_mask2.v = vec_cmp_lt(v_r2_2.v, v_hjg2_2.v);
-
-      v_doi_mask.v = vec_and(vec_add(v_doi_mask.v, v_doi_N3_mask.v), v_doi_mask_check.v);
-      
-      /* Combine two masks and form integer mask. */
-      doi_mask = vec_cmp_result(v_doi_mask.v);
-      //doi_mask2 = vec_cmp_result(vec_add(vec_and(v_doi_mask2.v, v_doi_mask2_check.v), v_doi_N3_mask2.v));
-      
-#endif /* HAVE_AVX512_F */
-
-      for(int k=0; k<VEC_SIZE; k++)
-        pjq[k] = &parts[pjd + k];
-
-      /* If there are any interactions left pack interaction values into c2
-       * cache. */
-      if (doi_mask) {
-        for(int k=0; k<VEC_SIZE; k++) {
-          if( v_r2.f[k] == 0.f) v_r2.f[k] = 1.f;
-        }
-        
-        //intCount += __builtin_popcount(doi_mask);
-
-        runner_iact_nonsym_1_vec_force(&v_r2, &v_dx_tmp, &v_dy_tmp, &v_dz_tmp,
-                          v_hi_inv, v_hj_inv, piq, pjq, 
-                          &a_hydro_xSum, &a_hydro_ySum, &a_hydro_zSum,
-                          &h_dtSum, &v_sigSum, &entropy_dtSum, v_doi_mask);
-      }
-      
-    }
-    
-    VEC_HADD(a_hydro_xSum, pi->a_hydro[0]);
-    VEC_HADD(a_hydro_ySum, pi->a_hydro[1]);
-    VEC_HADD(a_hydro_zSum, pi->a_hydro[2]);
-    VEC_HADD(h_dtSum, pi->force.h_dt);
-    for(int k=0; k<VEC_SIZE; k++)
-      pi->force.v_sig = max(pi->force.v_sig, v_sigSum.f[k]);
-    VEC_HADD(entropy_dtSum, pi->entropy_dt);
-    
-  } /* loop over all particles. */
-
-  //TIMER_TOC(timer_doself_force);
-#endif /* WITH_VECTORIZATION */
-}
-
-/**
- * @brief Compute the cell self-interaction (non-symmetric) using vector
- * intrinsics with one particle pi at a time.
- *
- * @param r The #runner.
- * @param c The #cell.
- */
-__attribute__((always_inline)) INLINE void runner_doself2_force_vec_2(
-    struct runner *r, struct cell *restrict c) {
-
-#ifdef WITH_VECTORIZATION
-  //static int intCount = 0;
-  const struct engine *e = r->e;
-  int doi_mask;
-  struct part *restrict pi;
-  int count_align;
-  int num_vec_proc = 2;//NUM_VEC_PROC;
-
-  struct part *restrict parts = c->parts;
-  const int count = c->count;
-
-  vector v_hi, v_vix, v_viy, v_viz, v_hig2, v_r2;
-  vector v_rhoi, v_grad_hi, v_pOrhoi2, v_balsara_i, v_ci;
-
-  //TIMER_TIC
-
-  if (!cell_is_active(c, e)) return;
-
-  if (!cell_is_drifted(c, e)) cell_drift_particles(c, e);
-
-  /* Get the particle cache from the runner and re-allocate
-   * the cache if it is not big enough for the cell. */
-  struct cache *restrict cell_cache = &r->ci_cache;
-
-  if (cell_cache->count < count) {
-    cache_init(cell_cache, count);
-  }
-
-  /* Read the particles from the cell and store them locally in the cache. */
-  cache_read_particles(c, cell_cache);
-
-  /* Create secondary cache to store particle interactions. */
-  //struct c2_cache int_cache;
-  //int icount = 0, icount_align = 0;
-
-  /* Loop over the particles in the cell. */
-  for (int pid = 0; pid < count; pid++) {
-
-    /* Get a pointer to the ith particle. */
-    pi = &parts[pid];
-
-    /* Is the ith particle active? */
-    if (!part_is_active(pi, e)) continue;
-
-    vector pix, piy, piz;
-
-    const float hi = cell_cache->h[pid];
-
-    /* Fill particle pi vectors. */
-    pix.v = vec_set1(cell_cache->x[pid]);
-    piy.v = vec_set1(cell_cache->y[pid]);
-    piz.v = vec_set1(cell_cache->z[pid]);
-    v_hi.v = vec_set1(hi);
-    v_vix.v = vec_set1(cell_cache->vx[pid]);
-    v_viy.v = vec_set1(cell_cache->vy[pid]);
-    v_viz.v = vec_set1(cell_cache->vz[pid]);
-    
-    v_rhoi.v = vec_set1(cell_cache->rho[pid]);
-    v_grad_hi.v = vec_set1(cell_cache->grad_h[pid]);
-    v_pOrhoi2.v = vec_set1(cell_cache->pOrho2[pid]);
-    v_balsara_i.v = vec_set1(cell_cache->balsara[pid]);
-    v_ci.v = vec_set1(cell_cache->soundspeed[pid]);
-
-    const float hig2 = hi * hi * kernel_gamma2;
-    v_hig2.v = vec_set1(hig2);
-
-    /* Reset cumulative sums of update vectors. */
-    vector a_hydro_xSum, a_hydro_ySum, a_hydro_zSum, h_dtSum, v_sigSum, entropy_dtSum;
-
-    /* Get the inverse of hi. */
-    vector v_hi_inv;
-
-    v_hi_inv = vec_reciprocal(v_hi);
-
-    a_hydro_xSum.v = vec_setzero();
-    a_hydro_ySum.v = vec_setzero();
-    a_hydro_zSum.v = vec_setzero();
-    h_dtSum.v = vec_setzero();
-    v_sigSum.v = vec_set1(pi->force.v_sig);
-    entropy_dtSum.v = vec_setzero();
-
-    /* Pad cache if there is a serial remainder. */
-    count_align = count;
-    int rem = count % (num_vec_proc * VEC_SIZE);
-    if (rem != 0) {
-      int pad = (num_vec_proc * VEC_SIZE) - rem;
-
-      count_align += pad;
-
-      /* Set positions to the same as particle pi so when the r2 > 0 mask is
-       * applied these extra contributions are masked out.*/
-      for (int i = count; i < count_align; i++) {
-        cell_cache->x[i] = pix.f[0];
-        cell_cache->y[i] = piy.f[0];
-        cell_cache->z[i] = piz.f[0];
-        cell_cache->h[i] = 1.f;
-      }
-    }
-
-    vector pjx, pjy, pjz;
-    vector hj, hjg2;
-    vector pjx2, pjy2, pjz2;
-    vector hj_2, hjg2_2;
-
-    /* Find all of particle pi's interacions and store needed values in the
-     * secondary cache.*/
-    for (int pjd = 0; pjd < count_align; pjd += (num_vec_proc * VEC_SIZE)) {
-
-      /* Load 2 sets of vectors from the particle cache. */
-      pjx.v = vec_load(&cell_cache->x[pjd]);
-      pjy.v = vec_load(&cell_cache->y[pjd]);
-      pjz.v = vec_load(&cell_cache->z[pjd]);
-      
-      hj.v = vec_load(&cell_cache->h[pjd]);
-      hjg2.v = vec_mul(vec_mul(hj.v,hj.v), kernel_gamma2_vec.v);
-
-      pjx2.v = vec_load(&cell_cache->x[pjd + VEC_SIZE]);
-      pjy2.v = vec_load(&cell_cache->y[pjd + VEC_SIZE]);
-      pjz2.v = vec_load(&cell_cache->z[pjd + VEC_SIZE]);
-      //pjvx2.v = vec_load(&cell_cache->vx[pjd + VEC_SIZE]);
-      //pjvy2.v = vec_load(&cell_cache->vy[pjd + VEC_SIZE]);
-      //pjvz2.v = vec_load(&cell_cache->vz[pjd + VEC_SIZE]);
-      //mj2.v = vec_load(&cell_cache->m[pjd + VEC_SIZE]);
-
-      hj_2.v = vec_load(&cell_cache->h[pjd + VEC_SIZE]);
-      hjg2_2.v = vec_mul(vec_mul(hj_2.v,hj_2.v), kernel_gamma2_vec.v);
-      
-      /* Compute the pairwise distance. */
-      vector v_dx_tmp, v_dy_tmp, v_dz_tmp;
-      vector v_dx_tmp2, v_dy_tmp2, v_dz_tmp2, v_r2_2;
-
-      v_dx_tmp.v = vec_sub(pix.v, pjx.v);
-      v_dx_tmp2.v = vec_sub(pix.v, pjx2.v);
-      v_dy_tmp.v = vec_sub(piy.v, pjy.v);
-      v_dy_tmp2.v = vec_sub(piy.v, pjy2.v);
-      v_dz_tmp.v = vec_sub(piz.v, pjz.v);
-      v_dz_tmp2.v = vec_sub(piz.v, pjz2.v);
-
-      v_r2.v = vec_mul(v_dx_tmp.v, v_dx_tmp.v);
-      v_r2_2.v = vec_mul(v_dx_tmp2.v, v_dx_tmp2.v);
-      v_r2.v = vec_fma(v_dy_tmp.v, v_dy_tmp.v, v_r2.v);
-      v_r2_2.v = vec_fma(v_dy_tmp2.v, v_dy_tmp2.v, v_r2_2.v);
-      v_r2.v = vec_fma(v_dz_tmp.v, v_dz_tmp.v, v_r2.v);
-      v_r2_2.v = vec_fma(v_dz_tmp2.v, v_dz_tmp2.v, v_r2_2.v);
-
-/* Form a mask from r2 < hig2 and r2 > 0.*/
-#ifdef HAVE_AVX512_F
-      // KNL_MASK_16 doi_mask, doi_mask_check, doi_mask2, doi_mask2_check;
-      KNL_MASK_16 doi_mask_check, doi_mask2, doi_mask2_check;
-
-      doi_mask_check = vec_cmp_gt(v_r2.v, vec_setzero());
-      doi_mask = vec_cmp_lt(v_r2.v, v_hig2.v);
-
-      doi_mask2_check = vec_cmp_gt(v_r2_2.v, vec_setzero());
-      doi_mask2 = vec_cmp_lt(v_r2_2.v, v_hig2.v);
-
-      doi_mask = doi_mask & doi_mask_check;
-      doi_mask2 = doi_mask2 & doi_mask2_check;
-
-#else
-      vector v_doi_mask, v_doi_mask_check, v_doi_N3_mask;
-      vector v_doi_mask2, v_doi_mask2_check, v_doi_N3_mask2;
-      int doi_mask2;
-
-      /* Form r2 > 0 mask, r2 < hig2 mask and r2 < hjg2 mask. */
-      v_doi_mask_check.v = vec_cmp_gt(v_r2.v, vec_setzero());
-      v_doi_mask.v = vec_cmp_lt(v_r2.v, v_hig2.v);
-      v_doi_N3_mask.v = vec_cmp_lt(v_r2.v, hjg2.v);
-
-      /* Form r2 > 0 mask and r2 < hig2 mask. */
-      v_doi_mask2_check.v = vec_cmp_gt(v_r2_2.v, vec_setzero());
-      v_doi_mask2.v = vec_cmp_lt(v_r2_2.v, v_hig2.v);
-      v_doi_N3_mask2.v = vec_cmp_lt(v_r2_2.v, hjg2_2.v);
-
-      v_doi_mask.v = vec_and(vec_add(v_doi_mask.v, v_doi_N3_mask.v), v_doi_mask_check.v);
-      v_doi_mask2.v = vec_and(vec_add(v_doi_mask2.v, v_doi_N3_mask2.v), v_doi_mask2_check.v);
-      
-      /* Combine two masks and form integer mask. */
-      doi_mask = vec_cmp_result(v_doi_mask.v);
-      doi_mask2 = vec_cmp_result(v_doi_mask2.v);
-      
-#endif /* HAVE_AVX512_F */
-
-      /* If there are any interactions left pack interaction values into c2
-       * cache. */
-      if (doi_mask) {
-        for(int k=0; k<VEC_SIZE; k++) {
-          if( v_r2.f[k] == 0.f) v_r2.f[k] = 1.f;
-        }
-        
-        //intCount += __builtin_popcount(doi_mask);
-
-        vector pjvx, pjvy, pjvz, mj, v_hj_inv;
-        vector v_rhoj, v_grad_hj, v_pOrhoj2, v_balsara_j, v_cj;
-
-        v_hj_inv = vec_reciprocal(hj);
-        mj.v = vec_load(&cell_cache->m[pjd]);
-        pjvx.v = vec_load(&cell_cache->vx[pjd]);
-        pjvy.v = vec_load(&cell_cache->vy[pjd]);
-        pjvz.v = vec_load(&cell_cache->vz[pjd]);
-
-        v_rhoj.v = vec_load(&cell_cache->rho[pjd]);
-        v_grad_hj.v = vec_load(&cell_cache->grad_h[pjd]);
-        v_pOrhoj2.v = vec_load(&cell_cache->pOrho2[pjd]);
-        v_balsara_j.v = vec_load(&cell_cache->balsara[pjd]);
-        v_cj.v = vec_load(&cell_cache->soundspeed[pjd]);
-
-        runner_iact_nonsym_1_vec_force_2(&v_r2, &v_dx_tmp, &v_dy_tmp, &v_dz_tmp,
-                          &v_vix, &v_viy, &v_viz, &v_rhoi, &v_grad_hi, &v_pOrhoi2, &v_balsara_i, &v_ci,
-                          &pjvx, &pjvy, &pjvz, &v_rhoj, &v_grad_hj, &v_pOrhoj2, &v_balsara_j, &v_cj, &mj,
-                          v_hi_inv, v_hj_inv, 
-                          &a_hydro_xSum, &a_hydro_ySum, &a_hydro_zSum,
-                          &h_dtSum, &v_sigSum, &entropy_dtSum, v_doi_mask);
-      }
-      if (doi_mask2) {
-        for(int k=0; k<VEC_SIZE; k++) {
-          if( v_r2_2.f[k] == 0.f) v_r2_2.f[k] = 1.f;
-        }
-        
-        vector pjvx, pjvy, pjvz, mj, v_hj_inv;
-        vector v_rhoj, v_grad_hj, v_pOrhoj2, v_balsara_j, v_cj;
-
-        v_hj_inv = vec_reciprocal(hj_2);
-        mj.v = vec_load(&cell_cache->m[pjd + VEC_SIZE]);
-        pjvx.v = vec_load(&cell_cache->vx[pjd + VEC_SIZE]);
-        pjvy.v = vec_load(&cell_cache->vy[pjd + VEC_SIZE]);
-        pjvz.v = vec_load(&cell_cache->vz[pjd + VEC_SIZE]);
-
-        v_rhoj.v = vec_load(&cell_cache->rho[pjd + VEC_SIZE]);
-        v_grad_hj.v = vec_load(&cell_cache->grad_h[pjd + VEC_SIZE]);
-        v_pOrhoj2.v = vec_load(&cell_cache->pOrho2[pjd + VEC_SIZE]);
-        v_balsara_j.v = vec_load(&cell_cache->balsara[pjd + VEC_SIZE]);
-        v_cj.v = vec_load(&cell_cache->soundspeed[pjd + VEC_SIZE]);
-
-        runner_iact_nonsym_1_vec_force_2(&v_r2_2, &v_dx_tmp2, &v_dy_tmp2, &v_dz_tmp2,
-                          &v_vix, &v_viy, &v_viz, &v_rhoi, &v_grad_hi, &v_pOrhoi2, &v_balsara_i, &v_ci,
-                          &pjvx, &pjvy, &pjvz, &v_rhoj, &v_grad_hj, &v_pOrhoj2, &v_balsara_j, &v_cj, &mj,
-                          v_hi_inv, v_hj_inv, 
-                          &a_hydro_xSum, &a_hydro_ySum, &a_hydro_zSum,
-                          &h_dtSum, &v_sigSum, &entropy_dtSum, v_doi_mask2);
-      }
-      
-    }
-    
-    VEC_HADD(a_hydro_xSum, pi->a_hydro[0]);
-    VEC_HADD(a_hydro_ySum, pi->a_hydro[1]);
-    VEC_HADD(a_hydro_zSum, pi->a_hydro[2]);
-    VEC_HADD(h_dtSum, pi->force.h_dt);
-    for(int k=0; k<VEC_SIZE; k++)
-      pi->force.v_sig = max(pi->force.v_sig, v_sigSum.f[k]);
-    VEC_HADD(entropy_dtSum, pi->entropy_dt);
-    
-  } /* loop over all particles. */
-
-  //message("No. of force interactions: %d", intCount);
-  //TIMER_TOC(timer_doself_force);
-#endif /* WITH_VECTORIZATION */
-}
-
-/**
- * @brief Compute the cell self-interaction (non-symmetric) using vector
- * intrinsics with one particle pi at a time.
- *
- * @param r The #runner.
- * @param c The #cell.
- */
-__attribute__((always_inline)) INLINE void runner_doself2_force_vec_3(
-    struct runner *r, struct cell *restrict c) {
-
 #ifdef WITH_VECTORIZATION
   const struct engine *e = r->e;
   struct part *restrict pi;
diff --git a/src/runner_doiact_vec.h b/src/runner_doiact_vec.h
index 57280b0064d565e04802b82c6cc80397f26337ce..50d0722d577c38a4cb3cce35a339795b399161fe 100644
--- a/src/runner_doiact_vec.h
+++ b/src/runner_doiact_vec.h
@@ -36,9 +36,6 @@
 /* Function prototypes. */
 void runner_doself1_density_vec(struct runner *r, struct cell *restrict c);
 void runner_doself2_force_vec(struct runner *r, struct cell *restrict c);
-void runner_doself2_force_vec_2(struct runner *r, struct cell *restrict c);
-void runner_doself2_force_vec_3(struct runner *r, struct cell *restrict c);
-void runner_doself1_density_vec_2(struct runner *r, struct cell *restrict c);
 void runner_dopair1_density_vec(struct runner *r, struct cell *restrict ci,
                                 struct cell *restrict cj);
 
diff --git a/tests/test125cells.c b/tests/test125cells.c
index 9594215082281ff87335b893b2b5e4c401c03b25..49a26bcca9f0b938953cdcf0024451e4cfcf1f07 100644
--- a/tests/test125cells.c
+++ b/tests/test125cells.c
@@ -32,9 +32,9 @@
 #include "swift.h"
 
 #if defined(WITH_VECTORIZATION)
-#define DOSELF2 runner_doself2_force_vec_3
+#define DOSELF2 runner_doself2_force_vec
 #define DOPAIR2 runner_dopair2_density_vec
-#define DOSELF2_NAME "runner_doself2_force_vec_3"
+#define DOSELF2_NAME "runner_doself2_force_vec"
 #define DOPAIR2_NAME "runner_dopair2_force_vec"
 #endif
 
@@ -441,8 +441,6 @@ void runner_doself1_density(struct runner *r, struct cell *ci);
 void runner_dopair2_force(struct runner *r, struct cell *ci, struct cell *cj);
 void runner_doself2_force(struct runner *r, struct cell *ci);
 void runner_doself2_force_vec(struct runner *r, struct cell *ci);
-void runner_doself2_force_vec_2(struct runner *r, struct cell *ci);
-void runner_doself2_force_vec_3(struct runner *r, struct cell *ci);
 
 /* And go... */
 int main(int argc, char *argv[]) {