From 57a7520545134ab95f7bb0397dcbe991c906a3e9 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Wed, 6 Aug 2025 16:34:21 +0200 Subject: Added HTR solver --- src/arch/avx2.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/arch/avx2.h') diff --git a/src/arch/avx2.h b/src/arch/avx2.h index 74aad53..1c7248b 100644 --- a/src/arch/avx2.h +++ b/src/arch/avx2.h @@ -437,5 +437,27 @@ is_eo_even(cube_t cube) e = _mm256_slli_epi16(e, 7-EOSHIFT); mask = _mm256_movemask_epi8(e); - return popcount_u32(mask) % 2; + return popcount_u32(mask) % 2 == 0; +} + +STATIC_INLINE uint64_t +coord_epudsep(cube_t cube) +{ + uint8_t aux[32]; + + _mm256_storeu_si256((__m256i_u *)aux, cube); + return coord_epudsep_array(aux + 16); +} + +STATIC_INLINE cube_t +invcoord_epudsep(uint64_t i) +{ + cube_t cube, elow; + uint8_t e[32]; + + invcoord_epudsep_array(i, e+16); + elow = _mm256_load_si256((__m256i *)e); + cube = _mm256_set_epi64x(SOLVED_H, 0, 0, SOLVED_L); + + return _mm256_or_si256(elow, cube); } -- cgit v1.3