aboutsummaryrefslogtreecommitdiff
path: root/src/cube_avx2.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-05-28 15:42:26 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-05-28 15:42:26 +0200
commit28ad019d62583b7e89b4e76922aa73857d5876eb (patch)
tree1a103ea701eb013785f1d0fa45f450d6a16b6d78 /src/cube_avx2.h
parent49b9c4a516f72e03d53277075f4580e2df8f0e63 (diff)
downloadnissy-core-28ad019d62583b7e89b4e76922aa73857d5876eb.tar.gz
nissy-core-28ad019d62583b7e89b4e76922aa73857d5876eb.zip
Added roadmap for refactor and some simple routines
Diffstat (limited to 'src/cube_avx2.h')
-rw-r--r--src/cube_avx2.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/cube_avx2.h b/src/cube_avx2.h
index 233afed..f3fe731 100644
--- a/src/cube_avx2.h
+++ b/src/cube_avx2.h
@@ -14,6 +14,8 @@ _static_inline cube_fast_t fastcube(
14 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, 14 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t,
15 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t 15 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t
16); 16);
17_static uint8_t corner(cube_fast_t, int);
18_static uint8_t edge(cube_fast_t, int);
17_static cube_fast_t cubetofast(cube_t); 19_static cube_fast_t cubetofast(cube_t);
18_static cube_t fasttocube(cube_fast_t); 20_static cube_t fasttocube(cube_fast_t);
19_static_inline bool equal_fast(cube_fast_t, cube_fast_t); 21_static_inline bool equal_fast(cube_fast_t, cube_fast_t);
@@ -68,6 +70,28 @@ fastcube(
68 ); 70 );
69} 71}
70 72
73_static uint8_t
74corner(cube_fast_t c, int i)
75{
76 uint8_t aux[32];
77
78 DBG_ASSERT(i >= 0 && i < 8, 255, "Corner must be between 0 and 7\n");
79 _mm256_storeu_si256((__m256i_u *)aux, c);
80
81 return aux[i];
82}
83
84_static uint8_t
85edge(cube_fast_t c, int i)
86{
87 uint8_t aux[32];
88
89 DBG_ASSERT(i >= 0 && i < 12, 255, "Edge must be between 0 and 11\n");
90 _mm256_storeu_si256((__m256i_u *)aux, c);
91
92 return aux[i+16];
93}
94
71_static cube_fast_t 95_static cube_fast_t
72cubetofast(cube_t a) 96cubetofast(cube_t a)
73{ 97{
@@ -338,4 +362,3 @@ invcoord_fast_esep(int64_t esep)
338 362
339 return ret; 363 return ret;
340} 364}
341

Generated with cgit - Back to sebastiano.tronto.net