OLD | NEW |
1 #ifndef Sk4x_DEFINED | 1 #ifndef Sk4x_DEFINED |
2 #define Sk4x_DEFINED | 2 #define Sk4x_DEFINED |
3 | 3 |
4 #include "SkTypes.h" | 4 #include "SkTypes.h" |
| 5 #include "SkNx.h" |
5 | 6 |
6 #define SK4X_PREAMBLE 1 | 7 #define SK4X_PREAMBLE 1 |
7 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 | 8 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 && !defined(SKNX_NO_SIMD) |
8 #include "../opts/Sk4x_sse.h" | 9 #include "../opts/Sk4x_sse.h" |
9 #elif defined(SK_ARM_HAS_NEON) | 10 #elif defined(SK_ARM_HAS_NEON) && !defined(SKNX_NO_SIMD) |
10 #include "../opts/Sk4x_neon.h" | 11 #include "../opts/Sk4x_neon.h" |
11 #else | 12 #else |
12 #include "../opts/Sk4x_none.h" | 13 #include "../opts/Sk4x_none.h" |
13 #endif | 14 #endif |
14 #undef SK4X_PREAMBLE | 15 #undef SK4X_PREAMBLE |
15 | 16 |
16 template <typename T> class Sk4x; | 17 template <typename T> class Sk4x; |
17 typedef Sk4x<float> Sk4f; | 18 typedef Sk4x<float> Sk4f; |
18 typedef Sk4x<int32_t> Sk4i; | 19 typedef Sk4x<int32_t> Sk4i; |
19 | 20 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 | 75 |
75 // TODO: these are particularly efficient in SSE. Useful? Also efficient i
n NEON? | 76 // TODO: these are particularly efficient in SSE. Useful? Also efficient i
n NEON? |
76 // static Sk4x XAYB(const Sk4x& xyzw, const Sk4x& abcd); | 77 // static Sk4x XAYB(const Sk4x& xyzw, const Sk4x& abcd); |
77 // static Sk4x ZCWD(const Sk4x& xyzw, const Sk4x& abcd); | 78 // static Sk4x ZCWD(const Sk4x& xyzw, const Sk4x& abcd); |
78 | 79 |
79 private: | 80 private: |
80 // It's handy to have Sk4f and Sk4i be mutual friends. | 81 // It's handy to have Sk4f and Sk4i be mutual friends. |
81 template <typename S> friend class Sk4x; | 82 template <typename S> friend class Sk4x; |
82 | 83 |
83 #define SK4X_PRIVATE 1 | 84 #define SK4X_PRIVATE 1 |
84 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 | 85 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 && !defined(SKNX_NO_SIMD) |
85 #include "../opts/Sk4x_sse.h" | 86 #include "../opts/Sk4x_sse.h" |
86 #elif defined(SK_ARM_HAS_NEON) | 87 #elif defined(SK_ARM_HAS_NEON) && !defined(SKNX_NO_SIMD) |
87 #include "../opts/Sk4x_neon.h" | 88 #include "../opts/Sk4x_neon.h" |
88 #else | 89 #else |
89 #include "../opts/Sk4x_none.h" | 90 #include "../opts/Sk4x_none.h" |
90 #endif | 91 #endif |
91 #undef SK4X_PRIVATE | 92 #undef SK4X_PRIVATE |
92 }; | 93 }; |
93 | 94 |
94 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 | 95 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 && !defined(SKNX_NO_SIMD) |
95 #include "../opts/Sk4x_sse.h" | 96 #include "../opts/Sk4x_sse.h" |
96 #elif defined(SK_ARM_HAS_NEON) | 97 #elif defined(SK_ARM_HAS_NEON) && !defined(SKNX_NO_SIMD) |
97 #include "../opts/Sk4x_neon.h" | 98 #include "../opts/Sk4x_neon.h" |
98 #else | 99 #else |
99 #include "../opts/Sk4x_none.h" | 100 #include "../opts/Sk4x_none.h" |
100 #endif | 101 #endif |
101 | 102 |
102 #endif//Sk4x_DEFINED | 103 #endif//Sk4x_DEFINED |
OLD | NEW |