diff options
Diffstat (limited to 'src/arch/neon.h')
| -rw-r--r-- | src/arch/neon.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/arch/neon.h b/src/arch/neon.h index f997813..725e589 100644 --- a/src/arch/neon.h +++ b/src/arch/neon.h | |||
| @@ -47,6 +47,17 @@ popcount_u32(uint32_t x) | |||
| 47 | return (int)x; | 47 | return (int)x; |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | STATIC_INLINE int | ||
| 51 | popcount_u64(uint64_t x) | ||
| 52 | { | ||
| 53 | int top, bottom; | ||
| 54 | |||
| 55 | bottom = popcount_u32((uint32_t)(x & UINT64_C(0xFFFFFFFF))); | ||
| 56 | top = popcount_u32((uint32_t)(x >> UINT64_C(32))); | ||
| 57 | |||
| 58 | return top + bottom; | ||
| 59 | } | ||
| 60 | |||
| 50 | STATIC void | 61 | STATIC void |
| 51 | pieces(cube_t cube[static 1], uint8_t c[static 8], uint8_t e[static 12]) | 62 | pieces(cube_t cube[static 1], uint8_t c[static 8], uint8_t e[static 12]) |
| 52 | { | 63 | { |
