diff options
Diffstat (limited to 'src/arch/avx2.h')
| -rw-r--r-- | src/arch/avx2.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/arch/avx2.h b/src/arch/avx2.h index 1c7248b..5a62213 100644 --- a/src/arch/avx2.h +++ b/src/arch/avx2.h | |||
| @@ -39,7 +39,7 @@ pieces(cube_t cube[static 1], uint8_t c[static 8], uint8_t e[static 12]) | |||
| 39 | { | 39 | { |
| 40 | uint8_t aux[32]; | 40 | uint8_t aux[32]; |
| 41 | 41 | ||
| 42 | _mm256_storeu_si256((__m256i_u *)aux, *cube); | 42 | _mm256_storeu_si256((__m256i *)aux, *cube); |
| 43 | memcpy(c, aux, 8); | 43 | memcpy(c, aux, 8); |
| 44 | memcpy(e, aux+16, 12); | 44 | memcpy(e, aux+16, 12); |
| 45 | } | 45 | } |
| @@ -172,7 +172,7 @@ invcoord_co(uint64_t coord) | |||
| 172 | mem[0] |= (uint64_t)(i + (co << COSHIFT)) << (uint64_t)(8 * i); | 172 | mem[0] |= (uint64_t)(i + (co << COSHIFT)) << (uint64_t)(8 * i); |
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | cc = _mm256_loadu_si256((const __m256i *)mem); | 175 | cc = _mm256_loadu_si256((__m256i *)mem); |
| 176 | cube = SOLVED_CUBE; | 176 | cube = SOLVED_CUBE; |
| 177 | copy_corners(&cube, cc); | 177 | copy_corners(&cube, cc); |
| 178 | 178 | ||
| @@ -251,7 +251,7 @@ invcoord_esep(uint64_t esep) | |||
| 251 | invcoord_esep_array(esep % UINT64_C(70), esep / UINT64_C(70), mem+16); | 251 | invcoord_esep_array(esep % UINT64_C(70), esep / UINT64_C(70), mem+16); |
| 252 | 252 | ||
| 253 | ret = SOLVED_CUBE; | 253 | ret = SOLVED_CUBE; |
| 254 | eee = _mm256_loadu_si256((__m256i_u *)&mem); | 254 | eee = _mm256_loadu_si256((__m256i *)mem); |
| 255 | copy_edges(&ret, eee); | 255 | copy_edges(&ret, eee); |
| 256 | 256 | ||
| 257 | return ret; | 257 | return ret; |
| @@ -372,7 +372,7 @@ coord_cp(cube_t cube) | |||
| 372 | int64_t aux[4]; | 372 | int64_t aux[4]; |
| 373 | 373 | ||
| 374 | cp = _mm256_and_si256(cube, CP_AVX2); | 374 | cp = _mm256_and_si256(cube, CP_AVX2); |
| 375 | _mm256_storeu_si256((__m256i_u *)aux, cp); | 375 | _mm256_storeu_si256((__m256i *)aux, cp); |
| 376 | 376 | ||
| 377 | return permtoindex_Nx8(8, aux[0]); | 377 | return permtoindex_Nx8(8, aux[0]); |
| 378 | } | 378 | } |
| @@ -390,7 +390,7 @@ coord_epud(cube_t cube) | |||
| 390 | int64_t aux[4]; | 390 | int64_t aux[4]; |
| 391 | 391 | ||
| 392 | ep = _mm256_and_si256(cube, EP_AVX2); | 392 | ep = _mm256_and_si256(cube, EP_AVX2); |
| 393 | _mm256_storeu_si256((__m256i_u *)aux, ep); | 393 | _mm256_storeu_si256((__m256i *)aux, ep); |
| 394 | 394 | ||
| 395 | return permtoindex_Nx8(8, aux[2]); | 395 | return permtoindex_Nx8(8, aux[2]); |
| 396 | } | 396 | } |
| @@ -409,7 +409,7 @@ coord_epe(cube_t cube) | |||
| 409 | 409 | ||
| 410 | ep = _mm256_and_si256(cube, EP_AVX2); | 410 | ep = _mm256_and_si256(cube, EP_AVX2); |
| 411 | ep = _mm256_xor_si256(ep, _mm256_set1_epi8(8)); | 411 | ep = _mm256_xor_si256(ep, _mm256_set1_epi8(8)); |
| 412 | _mm256_storeu_si256((__m256i_u *)aux, ep); | 412 | _mm256_storeu_si256((__m256i *)aux, ep); |
| 413 | 413 | ||
| 414 | return permtoindex_Nx8(4, aux[3]); | 414 | return permtoindex_Nx8(4, aux[3]); |
| 415 | } | 415 | } |
| @@ -445,7 +445,7 @@ coord_epudsep(cube_t cube) | |||
| 445 | { | 445 | { |
| 446 | uint8_t aux[32]; | 446 | uint8_t aux[32]; |
| 447 | 447 | ||
| 448 | _mm256_storeu_si256((__m256i_u *)aux, cube); | 448 | _mm256_storeu_si256((__m256i *)aux, cube); |
| 449 | return coord_epudsep_array(aux + 16); | 449 | return coord_epudsep_array(aux + 16); |
| 450 | } | 450 | } |
| 451 | 451 | ||
| @@ -453,10 +453,10 @@ STATIC_INLINE cube_t | |||
| 453 | invcoord_epudsep(uint64_t i) | 453 | invcoord_epudsep(uint64_t i) |
| 454 | { | 454 | { |
| 455 | cube_t cube, elow; | 455 | cube_t cube, elow; |
| 456 | uint8_t e[32]; | 456 | uint8_t e[32] = {0}; |
| 457 | 457 | ||
| 458 | invcoord_epudsep_array(i, e+16); | 458 | invcoord_epudsep_array(i, e+16); |
| 459 | elow = _mm256_load_si256((__m256i *)e); | 459 | elow = _mm256_loadu_si256((__m256i *)e); |
| 460 | cube = _mm256_set_epi64x(SOLVED_H, 0, 0, SOLVED_L); | 460 | cube = _mm256_set_epi64x(SOLVED_H, 0, 0, SOLVED_L); |
| 461 | 461 | ||
| 462 | return _mm256_or_si256(elow, cube); | 462 | return _mm256_or_si256(elow, cube); |
