From 3116eeb625a17106096b0a605e8142cfff700ac8 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 20 Nov 2023 22:42:16 +0000 Subject: Configuration / build support for ARM NEON (implementation: TODO!); testing new vm --- configure.sh | 9 ++++++--- cube.c | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/configure.sh b/configure.sh index fdebf27..c297623 100755 --- a/configure.sh +++ b/configure.sh @@ -1,9 +1,12 @@ #!/bin/sh -detectarch() { cc -march=native -dM -E - config.mk diff --git a/cube.c b/cube.c index e9a063d..e150765 100644 --- a/cube.c +++ b/cube.c @@ -485,11 +485,9 @@ Section: AVX2 fast methods This section contains performance-critical methods that rely on AVX2 intructions such as routines for moving or transforming the cube. - -Note: the #ifdef below is closed in the next section. ******************************************************************************/ -#ifdef CUBE_AVX2 +#if defined(CUBE_AVX2) #include @@ -651,6 +649,21 @@ coord_fast_eo(cube_fast_t c) return mask >> 17; } +/****************************************************************************** +Section: ARM NEON fast methods + +This section contains performance-critical methods that rely on ARM NEON +intructions such as routines for moving or transforming the cube. +******************************************************************************/ + +#elif defined(CUBE_NEON) + +typedef struct { + uint8x16_t corner; + uint8x16_t edge; +} cube_fast_t; + +/* TODO! */ /****************************************************************************** Section: portable fast methods -- cgit v1.3