diff --git a/src/runner_doiact_vec.c b/src/runner_doiact_vec.c index d8fdbc8f628ec9c437d887320109b327f954683a..882f99520b5515fd4e2d15479cddd075cf8e484c 100644 --- a/src/runner_doiact_vec.c +++ b/src/runner_doiact_vec.c @@ -1283,10 +1283,10 @@ void runner_dopair1_density_vec(struct runner *r, struct cell *ci, int doi_mask; /* Form r2 < hig2 mask. */ - v_doi_mask.v = vec_cmp_lt(v_r2.v, v_hig2.v); + vec_create_mask(v_doi_mask, vec_cmp_lt(v_r2.v, v_hig2.v)); /* Form integer mask. */ - doi_mask = vec_cmp_result(v_doi_mask.v); + doi_mask = vec_form_int_mask(v_doi_mask); /* If there are any interactions perform them. */ if (doi_mask) @@ -1410,10 +1410,10 @@ void runner_dopair1_density_vec(struct runner *r, struct cell *ci, int doj_mask; /* Form r2 < hig2 mask. */ - v_doj_mask.v = vec_cmp_lt(v_r2.v, v_hjg2.v); + vec_create_mask(v_doj_mask, vec_cmp_lt(v_r2.v, v_hjg2.v)); /* Form integer mask. */ - doj_mask = vec_cmp_result(v_doj_mask.v); + doj_mask = vec_form_int_mask(v_doj_mask); /* If there are any interactions perform them. */ if (doj_mask) diff --git a/src/vector.h b/src/vector.h index 8a48f31a2ddc870f0aaa7dd6bcceba6663ecd686..0c8f1788316f657f46da43a588d4ab7380a73c62 100644 --- a/src/vector.h +++ b/src/vector.h @@ -78,6 +78,7 @@ #define vec_cmp_lte(a, b) _mm512_cmp_ps_mask(a, b, _CMP_LE_OQ) #define vec_cmp_gte(a, b) _mm512_cmp_ps_mask(a, b, _CMP_GE_OQ) #define vec_cmp_result(a) a +#define vec_form_int_mask(a) a #define vec_and(a, b) _mm512_and_ps(a, b) #define vec_mask_and(a, b) a & b #define vec_init_mask(mask) mask = 0xFFFF @@ -167,6 +168,7 @@ #define vec_cmp_lte(a, b) _mm256_cmp_ps(a, b, _CMP_LE_OQ) #define vec_cmp_gte(a, b) _mm256_cmp_ps(a, b, _CMP_GE_OQ) #define vec_cmp_result(a) _mm256_movemask_ps(a) +#define vec_form_int_mask(a) _mm256_movemask_ps(a.v) #define vec_and(a, b) _mm256_and_ps(a, b) #define vec_mask_and(a, b) _mm256_and_ps(a.v, b.v) #define vec_init_mask(mask) mask.m = vec_setint1(0xFFFFFFFF) diff --git a/tests/benchmarkInteractions.c b/tests/benchmarkInteractions.c index 3ea5bfaaa5c6a0f7bdf8cfe5c685981f1da8cb34..0f6256217e420ae365340a57dcdfb318fbeaa901 100644 --- a/tests/benchmarkInteractions.c +++ b/tests/benchmarkInteractions.c @@ -388,7 +388,7 @@ void test_interactions(struct part test_part, struct part *parts, size_t count, hi_inv_vec = vec_reciprocal(hi_vec); - mask_vec_t mask, mask2; + mask_t mask, mask2; vec_init_mask(mask); vec_init_mask(mask2);