aboutsummaryrefslogtreecommitdiff
path: root/src/arch/neon.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/neon.h')
-rw-r--r--src/arch/neon.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/arch/neon.h b/src/arch/neon.h
index 2c35c58..9871125 100644
--- a/src/arch/neon.h
+++ b/src/arch/neon.h
@@ -453,7 +453,7 @@ invcoord_cp(uint64_t i)
453{ 453{
454 return (cube_t) { 454 return (cube_t) {
455 .corner = indextoperm_8x8(i), 455 .corner = indextoperm_8x8(i),
456 .edge = vcombine_u8(vld1_u8(SOLVED_L), vld1_u8(SOLVED_H)) 456 .edge = vcombine_u8(vld1_u8(SOLVED_L), vld1_u8(SOLVED_H))
457 }; 457 };
458} 458}
459 459
@@ -515,3 +515,24 @@ is_eo_even(cube_t cube)
515 515
516 return count % 2 == 0; 516 return count % 2 == 0;
517} 517}
518
519STATIC_INLINE uint64_t
520coord_epudsep(cube_t cube)
521{
522 uint8_t e[8];
523
524 vst1_u8(e, vget_low_u8(cube.edge));
525 return coord_epudsep_array(e);
526}
527
528STATIC_INLINE cube_t
529invcoord_epudsep(uint64_t i)
530{
531 uint8_t e[8];
532
533 invcoord_epudsep_array(i, e);
534 return (cube_t) {
535 .corner = vld1_u8(SOLVED_L),
536 .edge = vcombine_u8(vld1_u8(e), vld1_u8(SOLVED_H))
537 };
538}

Generated with cgit - Back to sebastiano.tronto.net