OptimeGBA
OptimeGBA copied to clipboard
Non-SIMD fallback
Summary
This patch implements a non-SIMD fallback on non-AVX2 machine.
Testing
Tested with Kirby & The Amazing Mirror's loading screen and prologue on:
- x86 AVX2 machine with AVX2 routine
- x86 AVX2 machine with non-SIMD routine
- aarch64 machine with non-SIMD routine
I also tuned the code a little bit to run both AVX and non-SIMD routines and made sure their output matched.
Known issues
- 8 bit routine is not covered.
- SIMD implementation with NEON would be hard because many of the intrinsics are not available. Also there is at most 128 bit SIMD on ARM platform rather than 256 bits.