wx257osn2 / qoixx

Single Header Quite Fast QOI(Quite OK Image Format) Implementation written in C++20
MIT License
36 stars 5 forks source link

Add support for 32bit arm #26

Open igor-microblink opened 8 months ago

igor-microblink commented 8 months ago

At the moment 32bit android arm is not supported, so the fallback without SIMD is required.

wx257osn2 commented 7 months ago

@igor-microblink Does this change fix this? If so, I will merge this into master . (I believe that this is one of the solution, but I don't have 32bit ARM environment, so can't check it.)

igor-microblink commented 7 months ago

Thanks. Proposed change is fix for compilation error on armebi v7a.

__ARM_FEATURE_SVE is not defined for armeabi-v7a. Is it possible to add impl which utilizes arm neon for 32bit ARMs? AFAIK ARM NEON is supported from armeabi-v7.

wx257osn2 commented 7 months ago

__ARM_FEATURE_SVE is not defined for armeabi-v7a

Yes, cause Arm SVE is an extension for armv8 and one of basic instructions in armv9.

Is it possible to add impl which utilizes arm neon for 32bit ARMs? AFAIK ARM NEON is supported from armeabi-v7.

Hmm, currently qoixx doesn't support armv7 as SIMD-available environment, because I don't have any development environment of armv7. It is possible technically cause NEON is an extension for armv7, but qoixx basically assumes 64-bit architecture (e.g. fast hash calculation using 64bit integer arithmetic; this might be not fast on 32bit environment), and currently I don't think I'd support it aggressively. Of course PR for supporting armv7 with NEON would be welcome, I will review it.