aboutsummaryrefslogtreecommitdiff
path: root/src/_trans_avx2.c
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2023-11-04 10:25:13 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2023-11-04 10:25:13 +0100
commit3051b2342d67dcba2fdc0010fb26f5850964c4d9 (patch)
treebc47ade8eb832d003e062ffaa2be6e26c185413a /src/_trans_avx2.c
parentade2ed050a2d472b4dd01e30666f5e7ec5030724 (diff)
downloadnissy-core-3051b2342d67dcba2fdc0010fb26f5850964c4d9.tar.gz
nissy-core-3051b2342d67dcba2fdc0010fb26f5850964c4d9.zip
avx2 fully works
Diffstat (limited to 'src/_trans_avx2.c')
-rw-r--r--src/_trans_avx2.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/_trans_avx2.c b/src/_trans_avx2.c
index e80bf79..c296f6d 100644
--- a/src/_trans_avx2.c
+++ b/src/_trans_avx2.c
@@ -1,14 +1,15 @@
1static inline cube_t 1static inline cube_t
2flipallcorners(cube_t c) 2flipallcorners(cube_t c)
3{ 3{
4 cube_t shleft, shright, summed, newco, cleanco, ret; 4 cube_t co, shleft, shright, summed, newco, cleanco, ret;
5 5
6 shleft = _mm256_slli_si256(c, 1); 6 co = _mm256_and_si256(c, _co2_avx2);
7 shright = _mm256_srli_si256(c, 1); 7 shleft = _mm256_slli_epi32(co, 1);
8 shright = _mm256_srli_epi32(co, 1);
8 summed = _mm256_or_si256(shleft, shright); 9 summed = _mm256_or_si256(shleft, shright);
9 newco = _mm256_and_si256(summed, _co_avx2); 10 newco = _mm256_and_si256(summed, _co2_avx2);
10 cleanco = _mm256_andnot_si256(c, _co_avx2); 11 cleanco = _mm256_xor_si256(c, co);
11 ret = _mm256_and_si256(cleanco, newco); 12 ret = _mm256_or_si256(cleanco, newco);
12 13
13 return ret; 14 return ret;
14} 15}

Generated with cgit - Back to sebastiano.tronto.net