| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
|
|
| #ifndef GEMMLOWP_INTERNAL_DETECT_PLATFORM_H_ |
| #define GEMMLOWP_INTERNAL_DETECT_PLATFORM_H_ |
|
|
| |
| |
| #if defined(__GNUC__) && !defined(__native_client__) |
| #define GEMMLOWP_ALLOW_INLINE_ASM |
| #endif |
|
|
| |
| |
| #if defined(__GNUC__) |
| #define GEMMLOWP_NOINLINE __attribute__((noinline)) |
| #else |
| #define GEMMLOWP_NOINLINE |
| #endif |
|
|
| |
| #ifdef __arm__ |
| #define GEMMLOWP_ARM_32 |
| #endif |
|
|
| #ifdef __aarch64__ |
| #define GEMMLOWP_ARM_64 |
| #endif |
|
|
| #if defined(GEMMLOWP_ARM_32) || defined(GEMMLOWP_ARM_64) |
| #define GEMMLOWP_ARM |
| #endif |
|
|
| |
| #if defined(__mips) && !defined(__LP64__) |
| #define GEMMLOWP_MIPS_32 |
| #endif |
|
|
| #if defined(__mips) && defined(__LP64__) |
| #define GEMMLOWP_MIPS_64 |
| #endif |
|
|
| #if defined(GEMMLOWP_MIPS_32) || defined(GEMMLOWP_MIPS_64) |
| #define GEMMLOWP_MIPS |
| #endif |
|
|
| |
| #if defined(__i386__) || defined(_M_IX86) || defined(_X86_) || defined(__i386) |
| #define GEMMLOWP_X86_32 |
| #endif |
|
|
| #if defined(__x86_64__) || defined(_M_X64) || defined(__amd64) |
| #define GEMMLOWP_X86_64 |
| #endif |
|
|
| #if defined(GEMMLOWP_X86_32) || defined(GEMMLOWP_X86_64) |
| #define GEMMLOWP_X86 |
| #endif |
|
|
| |
| |
| |
| #ifdef GEMMLOWP_ALLOW_INLINE_ASM |
|
|
| |
| #if (defined __ARM_NEON) || (defined __ARM_NEON__) |
| #define GEMMLOWP_NEON |
| #endif |
|
|
| |
| #if defined(GEMMLOWP_NEON) && defined(GEMMLOWP_ARM_32) |
| #define GEMMLOWP_NEON_32 |
| #endif |
|
|
| #if defined(GEMMLOWP_NEON) && defined(GEMMLOWP_ARM_64) |
| #define GEMMLOWP_NEON_64 |
| #endif |
|
|
| |
| |
| |
| #if defined(GEMMLOWP_MIPS) && (__mips_isa_rev >= 5) && defined(__mips_msa) && \ |
| defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) |
| #define GEMMLOWP_MSA |
| #endif |
|
|
| |
| #if defined(GEMMLOWP_MSA) && defined(GEMMLOWP_MIPS_32) |
| #define GEMMLOWP_MSA_32 |
| #endif |
|
|
| #if defined(GEMMLOWP_MSA) && defined(GEMMLOWP_MIPS_64) |
| #define GEMMLOWP_MSA_64 |
| #endif |
|
|
| |
| |
| #if defined(__AVX2__) && defined(GEMMLOWP_ENABLE_AVX2) |
| #define GEMMLOWP_AVX2 |
| |
| |
| |
| #elif defined(__SSE4_1__) || (defined(_MSC_VER) && defined(__AVX__)) |
| #define GEMMLOWP_SSE4 |
| |
| #elif defined(__SSE3__) |
| #define GEMMLOWP_SSE3 |
| #endif |
|
|
| |
| #if defined(GEMMLOWP_SSE4) && defined(GEMMLOWP_X86_32) && \ |
| !defined(GEMMLOWP_DISABLE_SSE4) |
| #define GEMMLOWP_SSE4_32 |
| #endif |
|
|
| #if defined(GEMMLOWP_SSE3) && defined(GEMMLOWP_X86_32) |
| #define GEMMLOWP_SSE3_32 |
| #endif |
|
|
| #if defined(GEMMLOWP_SSE4) && defined(GEMMLOWP_X86_64) && \ |
| !defined(GEMMLOWP_DISABLE_SSE4) |
| #define GEMMLOWP_SSE4_64 |
| #endif |
|
|
| #if defined(GEMMLOWP_SSE3) && defined(GEMMLOWP_X86_64) |
| #define GEMMLOWP_SSE3_64 |
| #endif |
|
|
| #if defined(GEMMLOWP_AVX2) && defined(GEMMLOWP_X86_64) |
| #define GEMMLOWP_AVX2_64 |
| #endif |
|
|
| #if defined(__has_feature) |
| #if __has_feature(memory_sanitizer) |
| #include <sanitizer/msan_interface.h> |
| #define GEMMLOWP_MARK_MEMORY_AS_INITIALIZED __msan_unpoison |
| #elif __has_feature(address_sanitizer) |
| #include <sanitizer/asan_interface.h> |
| #define GEMMLOWP_MARK_MEMORY_AS_INITIALIZED __asan_unpoison_memory_region |
| #endif |
| #endif |
|
|
| #endif |
|
|
| |
| |
| |
| #if defined(__ANDROID__) || defined(ANDROID) |
| #define GEMMLOWP_ANDROID |
| #endif |
|
|
| #endif |
|
|