From de04d37e8520079f5bba3b1a87d42313297543db Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Fri, 19 Dec 2025 07:32:09 +0100 Subject: Add coordinate solvers for corners --- src/arch/avx2.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/arch/avx2.h') diff --git a/src/arch/avx2.h b/src/arch/avx2.h index 5a62213..b80b0fb 100644 --- a/src/arch/avx2.h +++ b/src/arch/avx2.h @@ -160,6 +160,16 @@ coord_co(cube_t c) return ret; } +STATIC_INLINE void +copy_co(cube_t cube[static 1], cube_t co) +{ + cube_t coclean; + + coclean = _mm256_and_si256(co, CO2_AVX2); + *cube = _mm256_andnot_si256(CO2_AVX2, *cube); + *cube = _mm256_or_si256(*cube, coclean); +} + STATIC_INLINE cube_t invcoord_co(uint64_t coord) { @@ -174,7 +184,7 @@ invcoord_co(uint64_t coord) cc = _mm256_loadu_si256((__m256i *)mem); cube = SOLVED_CUBE; - copy_corners(&cube, cc); + copy_co(&cube, cc); return cube; } -- cgit v1.3