From a2b8556e3cdc59bbb4a89c2779d2094db975eaa5 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 2 Nov 2023 18:44:52 +0100 Subject: Added transformations for avx2 --- src/cube.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/cube.c') diff --git a/src/cube.c b/src/cube.c index 62ac6e3..6eb49f0 100644 --- a/src/cube.c +++ b/src/cube.c @@ -126,10 +126,12 @@ cube_arr_t zerocube_arr = { .e = {0}, .c = {0} }; #ifdef CUBE_AVX2 -#define setsolved(cube) cube = _mm256_loadu_si256((__m256i_u *)&solvedcube_arr) -#define setzero(cube) cube = _mm256_setzero_si256() +#define _co_avx2 _mm256_set_epi64x(0, 0xF0F0F0F0F0F0F0F0, 0, 0) +#define _eo_avx2 _mm256_set_epi64x(0, 0, 0xF0F0F0F0, 0xF0F0F0F0F0F0F0F0) #define _c _mm256_set_epi64x(0, 0, 0, 0xFF) #define _e _mm256_set_epi64x(0, 0xFF, 0, 0) +#define setsolved(cube) cube = _mm256_loadu_si256((__m256i_u *)&solvedcube_arr) +#define setzero(cube) cube = _mm256_setzero_si256() /* TODO: in the next 4 macros, all 0 should be i, but must be constant! */ #define get_edge(cube, i) _mm256_extract_epi8(cube, 0+16) #define get_corner(cube, i) _mm256_extract_epi8(cube, 0) -- cgit v1.3