Index: src/core/SkOpts.cpp |
diff --git a/src/core/SkOpts.cpp b/src/core/SkOpts.cpp |
index 95781a39778fcb065cd82b2cc77b6cd05d5f5d4d..879eefcde1343e00d05f2b47149b41c27c6ee93b 100644 |
--- a/src/core/SkOpts.cpp |
+++ b/src/core/SkOpts.cpp |
@@ -11,13 +11,27 @@ |
#include "SkOpts.h" |
#if defined(SK_ARM_HAS_NEON) |
- #define SK_OPTS_NS neon |
+ #if defined(__ARM_FEATURE_CRC32) |
+ #define SK_OPTS_NS neon_and_crc32 |
+ #else |
+ #define SK_OPTS_NS neon |
+ #endif |
+#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_AVX2 |
+ #define SK_OPTS_NS avx2 |
+#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_AVX |
+ #define SK_OPTS_NS avx |
+#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE42 |
+ #define SK_OPTS_NS sse42 |
+#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE41 |
+ #define SK_OPTS_NS sse41 |
#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3 |
#define SK_OPTS_NS ssse3 |
#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE3 |
#define SK_OPTS_NS sse3 |
#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 |
#define SK_OPTS_NS sse2 |
+#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 |
+ #define SK_OPTS_NS sse |
#else |
#define SK_OPTS_NS portable |
#endif |