• Home
  • Raw
  • Download

Lines Matching refs:AI

31 AI static __m128 emulate_mm_floor_ps(__m128 v) {  in emulate_mm_floor_ps()
40 AI SkNx(const __m128& vec) : fVec(vec) {} in SkNx()
42 AI SkNx() {} in SkNx()
43 AI SkNx(float val) : fVec(_mm_set1_ps(val)) {} in SkNx()
44 AI static SkNx Load(const void* ptr) { in Load()
47 AI SkNx(float a, float b) : fVec(_mm_setr_ps(a,b,0,0)) {} in SkNx()
49 AI void store(void* ptr) const { _mm_storel_pi((__m64*)ptr, fVec); } in store()
51 AI static void Load2(const void* ptr, SkNx* x, SkNx* y) { in Load2()
57 AI static void Store2(void* dst, const SkNx& a, const SkNx& b) { in Store2()
62 AI static void Store3(void* dst, const SkNx& a, const SkNx& b, const SkNx& c) { in Store3()
69 AI static void Store4(void* dst, const SkNx& a, const SkNx& b, const SkNx& c, const SkNx& d) { in Store4()
76 AI SkNx operator - () const { return _mm_xor_ps(_mm_set1_ps(-0.0f), fVec); }
78 AI SkNx operator + (const SkNx& o) const { return _mm_add_ps(fVec, o.fVec); }
79 AI SkNx operator - (const SkNx& o) const { return _mm_sub_ps(fVec, o.fVec); }
80 AI SkNx operator * (const SkNx& o) const { return _mm_mul_ps(fVec, o.fVec); }
81 AI SkNx operator / (const SkNx& o) const { return _mm_div_ps(fVec, o.fVec); }
83 AI SkNx operator == (const SkNx& o) const { return _mm_cmpeq_ps (fVec, o.fVec); }
84 AI SkNx operator != (const SkNx& o) const { return _mm_cmpneq_ps(fVec, o.fVec); }
85 AI SkNx operator < (const SkNx& o) const { return _mm_cmplt_ps (fVec, o.fVec); }
86 AI SkNx operator > (const SkNx& o) const { return _mm_cmpgt_ps (fVec, o.fVec); }
87 AI SkNx operator <= (const SkNx& o) const { return _mm_cmple_ps (fVec, o.fVec); }
88 AI SkNx operator >= (const SkNx& o) const { return _mm_cmpge_ps (fVec, o.fVec); }
90 AI static SkNx Min(const SkNx& l, const SkNx& r) { return _mm_min_ps(l.fVec, r.fVec); } in Min()
91 AI static SkNx Max(const SkNx& l, const SkNx& r) { return _mm_max_ps(l.fVec, r.fVec); } in Max()
93 AI SkNx abs() const { return _mm_andnot_ps(_mm_set1_ps(-0.0f), fVec); } in abs()
94 AI SkNx floor() const { in floor()
102 AI SkNx sqrt() const { return _mm_sqrt_ps (fVec); } in sqrt()
103 AI SkNx rsqrt() const { return _mm_rsqrt_ps(fVec); } in rsqrt()
104 AI SkNx invert() const { return _mm_rcp_ps(fVec); } in invert()
106 AI float operator[](int k) const {
112 AI bool allTrue() const { return 0xff == (_mm_movemask_epi8(_mm_castps_si128(fVec)) & 0xff); } in allTrue()
113 AI bool anyTrue() const { return 0x00 != (_mm_movemask_epi8(_mm_castps_si128(fVec)) & 0xff); } in anyTrue()
115 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
130 AI SkNx(const __m128& vec) : fVec(vec) {} in SkNx()
132 AI SkNx() {} in SkNx()
133 AI SkNx(float val) : fVec( _mm_set1_ps(val) ) {} in SkNx()
134 AI SkNx(float a, float b, float c, float d) : fVec(_mm_setr_ps(a,b,c,d)) {} in SkNx()
136 AI static SkNx Load(const void* ptr) { return _mm_loadu_ps((const float*)ptr); } in Load()
137 AI void store(void* ptr) const { _mm_storeu_ps((float*)ptr, fVec); } in store()
139 AI static void Load2(const void* ptr, SkNx* x, SkNx* y) { in Load2()
146 AI static void Load4(const void* ptr, SkNx* r, SkNx* g, SkNx* b, SkNx* a) { in Load4()
157 AI static void Store4(void* dst, const SkNx& r, const SkNx& g, const SkNx& b, const SkNx& a) { in Store4()
169 AI SkNx operator - () const { return _mm_xor_ps(_mm_set1_ps(-0.0f), fVec); }
171 AI SkNx operator + (const SkNx& o) const { return _mm_add_ps(fVec, o.fVec); }
172 AI SkNx operator - (const SkNx& o) const { return _mm_sub_ps(fVec, o.fVec); }
173 AI SkNx operator * (const SkNx& o) const { return _mm_mul_ps(fVec, o.fVec); }
174 AI SkNx operator / (const SkNx& o) const { return _mm_div_ps(fVec, o.fVec); }
176 AI SkNx operator == (const SkNx& o) const { return _mm_cmpeq_ps (fVec, o.fVec); }
177 AI SkNx operator != (const SkNx& o) const { return _mm_cmpneq_ps(fVec, o.fVec); }
178 AI SkNx operator < (const SkNx& o) const { return _mm_cmplt_ps (fVec, o.fVec); }
179 AI SkNx operator > (const SkNx& o) const { return _mm_cmpgt_ps (fVec, o.fVec); }
180 AI SkNx operator <= (const SkNx& o) const { return _mm_cmple_ps (fVec, o.fVec); }
181 AI SkNx operator >= (const SkNx& o) const { return _mm_cmpge_ps (fVec, o.fVec); }
183 AI static SkNx Min(const SkNx& l, const SkNx& r) { return _mm_min_ps(l.fVec, r.fVec); } in Min()
184 AI static SkNx Max(const SkNx& l, const SkNx& r) { return _mm_max_ps(l.fVec, r.fVec); } in Max()
186 AI SkNx abs() const { return _mm_andnot_ps(_mm_set1_ps(-0.0f), fVec); } in abs()
187 AI SkNx floor() const { in floor()
195 AI SkNx sqrt() const { return _mm_sqrt_ps (fVec); } in sqrt()
196 AI SkNx rsqrt() const { return _mm_rsqrt_ps(fVec); } in rsqrt()
197 AI SkNx invert() const { return _mm_rcp_ps(fVec); } in invert()
199 AI float operator[](int k) const {
205 AI float min() const { in min()
211 AI float max() const { in max()
217 AI bool allTrue() const { return 0xffff == _mm_movemask_epi8(_mm_castps_si128(fVec)); } in allTrue()
218 AI bool anyTrue() const { return 0x0000 != _mm_movemask_epi8(_mm_castps_si128(fVec)); } in anyTrue()
220 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
232 AI static __m128i mullo32(__m128i a, __m128i b) { in mullo32()
246 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
248 AI SkNx() {} in SkNx()
249 AI SkNx(int32_t val) : fVec(_mm_set1_epi32(val)) {} in SkNx()
250 AI static SkNx Load(const void* ptr) { return _mm_loadu_si128((const __m128i*)ptr); } in Load()
251 AI SkNx(int32_t a, int32_t b, int32_t c, int32_t d) : fVec(_mm_setr_epi32(a,b,c,d)) {} in SkNx()
253 AI void store(void* ptr) const { _mm_storeu_si128((__m128i*)ptr, fVec); } in store()
255 AI SkNx operator + (const SkNx& o) const { return _mm_add_epi32(fVec, o.fVec); }
256 AI SkNx operator - (const SkNx& o) const { return _mm_sub_epi32(fVec, o.fVec); }
257 AI SkNx operator * (const SkNx& o) const { return mullo32(fVec, o.fVec); }
259 AI SkNx operator & (const SkNx& o) const { return _mm_and_si128(fVec, o.fVec); }
260 AI SkNx operator | (const SkNx& o) const { return _mm_or_si128(fVec, o.fVec); }
261 AI SkNx operator ^ (const SkNx& o) const { return _mm_xor_si128(fVec, o.fVec); }
263 AI SkNx operator << (int bits) const { return _mm_slli_epi32(fVec, bits); }
264 AI SkNx operator >> (int bits) const { return _mm_srai_epi32(fVec, bits); }
266 AI SkNx operator == (const SkNx& o) const { return _mm_cmpeq_epi32 (fVec, o.fVec); }
267 AI SkNx operator < (const SkNx& o) const { return _mm_cmplt_epi32 (fVec, o.fVec); }
268 AI SkNx operator > (const SkNx& o) const { return _mm_cmpgt_epi32 (fVec, o.fVec); }
270 AI int32_t operator[](int k) const {
276 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
285 AI SkNx abs() const { in abs()
294 AI static SkNx Min(const SkNx& x, const SkNx& y) { in Min()
302 AI static SkNx Max(const SkNx& x, const SkNx& y) { in Max()
316 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
318 AI SkNx() {} in SkNx()
319 AI SkNx(uint32_t val) : fVec(_mm_set1_epi32(val)) {} in SkNx()
320 AI static SkNx Load(const void* ptr) { return _mm_loadl_epi64((const __m128i*)ptr); } in Load()
321 AI SkNx(uint32_t a, uint32_t b) : fVec(_mm_setr_epi32(a,b,0,0)) {} in SkNx()
323 AI void store(void* ptr) const { _mm_storel_epi64((__m128i*)ptr, fVec); } in store()
325 AI SkNx operator + (const SkNx& o) const { return _mm_add_epi32(fVec, o.fVec); }
326 AI SkNx operator - (const SkNx& o) const { return _mm_sub_epi32(fVec, o.fVec); }
327 AI SkNx operator * (const SkNx& o) const { return mullo32(fVec, o.fVec); }
329 AI SkNx operator & (const SkNx& o) const { return _mm_and_si128(fVec, o.fVec); }
330 AI SkNx operator | (const SkNx& o) const { return _mm_or_si128(fVec, o.fVec); }
331 AI SkNx operator ^ (const SkNx& o) const { return _mm_xor_si128(fVec, o.fVec); }
333 AI SkNx operator << (int bits) const { return _mm_slli_epi32(fVec, bits); }
334 AI SkNx operator >> (int bits) const { return _mm_srli_epi32(fVec, bits); }
336 AI SkNx operator == (const SkNx& o) const { return _mm_cmpeq_epi32 (fVec, o.fVec); }
337 AI SkNx operator != (const SkNx& o) const { return (*this == o) ^ 0xffffffff; }
340 AI uint32_t operator[](int k) const {
346 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
355 AI bool allTrue() const { return 0xff == (_mm_movemask_epi8(fVec) & 0xff); } in allTrue()
363 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
365 AI SkNx() {} in SkNx()
366 AI SkNx(uint32_t val) : fVec(_mm_set1_epi32(val)) {} in SkNx()
367 AI static SkNx Load(const void* ptr) { return _mm_loadu_si128((const __m128i*)ptr); } in Load()
368 AI SkNx(uint32_t a, uint32_t b, uint32_t c, uint32_t d) : fVec(_mm_setr_epi32(a,b,c,d)) {} in SkNx()
370 AI void store(void* ptr) const { _mm_storeu_si128((__m128i*)ptr, fVec); } in store()
372 AI SkNx operator + (const SkNx& o) const { return _mm_add_epi32(fVec, o.fVec); }
373 AI SkNx operator - (const SkNx& o) const { return _mm_sub_epi32(fVec, o.fVec); }
374 AI SkNx operator * (const SkNx& o) const { return mullo32(fVec, o.fVec); }
376 AI SkNx operator & (const SkNx& o) const { return _mm_and_si128(fVec, o.fVec); }
377 AI SkNx operator | (const SkNx& o) const { return _mm_or_si128(fVec, o.fVec); }
378 AI SkNx operator ^ (const SkNx& o) const { return _mm_xor_si128(fVec, o.fVec); }
380 AI SkNx operator << (int bits) const { return _mm_slli_epi32(fVec, bits); }
381 AI SkNx operator >> (int bits) const { return _mm_srli_epi32(fVec, bits); }
383 AI SkNx operator == (const SkNx& o) const { return _mm_cmpeq_epi32 (fVec, o.fVec); }
384 AI SkNx operator != (const SkNx& o) const { return (*this == o) ^ 0xffffffff; }
388 AI uint32_t operator[](int k) const {
394 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
403 AI SkNx mulHi(SkNx m) const { in mulHi()
416 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
418 AI SkNx() {} in SkNx()
419 AI SkNx(uint16_t val) : fVec(_mm_set1_epi16(val)) {} in SkNx()
420 AI SkNx(uint16_t a, uint16_t b, uint16_t c, uint16_t d) in SkNx()
423 AI static SkNx Load(const void* ptr) { return _mm_loadl_epi64((const __m128i*)ptr); } in Load()
424 AI void store(void* ptr) const { _mm_storel_epi64((__m128i*)ptr, fVec); } in store()
426 AI static void Load4(const void* ptr, SkNx* r, SkNx* g, SkNx* b, SkNx* a) { in Load4()
438 AI static void Load3(const void* ptr, SkNx* r, SkNx* g, SkNx* b) { in Load3()
454 AI static void Store4(void* dst, const SkNx& r, const SkNx& g, const SkNx& b, const SkNx& a) { in Store4()
463 AI SkNx operator + (const SkNx& o) const { return _mm_add_epi16(fVec, o.fVec); }
464 AI SkNx operator - (const SkNx& o) const { return _mm_sub_epi16(fVec, o.fVec); }
465 AI SkNx operator * (const SkNx& o) const { return _mm_mullo_epi16(fVec, o.fVec); }
466 AI SkNx operator & (const SkNx& o) const { return _mm_and_si128(fVec, o.fVec); }
467 AI SkNx operator | (const SkNx& o) const { return _mm_or_si128(fVec, o.fVec); }
469 AI SkNx operator << (int bits) const { return _mm_slli_epi16(fVec, bits); }
470 AI SkNx operator >> (int bits) const { return _mm_srli_epi16(fVec, bits); }
472 AI uint16_t operator[](int k) const {
484 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
486 AI SkNx() {} in SkNx()
487 AI SkNx(uint16_t val) : fVec(_mm_set1_epi16(val)) {} in SkNx()
488 AI SkNx(uint16_t a, uint16_t b, uint16_t c, uint16_t d, in SkNx()
492 AI static SkNx Load(const void* ptr) { return _mm_loadu_si128((const __m128i*)ptr); } in Load()
493 AI void store(void* ptr) const { _mm_storeu_si128((__m128i*)ptr, fVec); } in store()
495 AI static void Load4(const void* ptr, SkNx* r, SkNx* g, SkNx* b, SkNx* a) { in Load4()
516 AI static void Load3(const void* ptr, SkNx* r, SkNx* g, SkNx* b) { in Load3()
541 AI static void Store4(void* ptr, const SkNx& r, const SkNx& g, const SkNx& b, const SkNx& a) { in Store4()
553 AI SkNx operator + (const SkNx& o) const { return _mm_add_epi16(fVec, o.fVec); }
554 AI SkNx operator - (const SkNx& o) const { return _mm_sub_epi16(fVec, o.fVec); }
555 AI SkNx operator * (const SkNx& o) const { return _mm_mullo_epi16(fVec, o.fVec); }
556 AI SkNx operator & (const SkNx& o) const { return _mm_and_si128(fVec, o.fVec); }
557 AI SkNx operator | (const SkNx& o) const { return _mm_or_si128(fVec, o.fVec); }
559 AI SkNx operator << (int bits) const { return _mm_slli_epi16(fVec, bits); }
560 AI SkNx operator >> (int bits) const { return _mm_srli_epi16(fVec, bits); }
562 AI static SkNx Min(const SkNx& a, const SkNx& b) { in Min()
571 AI SkNx mulHi(const SkNx& m) const { in mulHi()
575 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
580 AI uint16_t operator[](int k) const {
592 AI SkNx() {} in SkNx()
593 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
594 AI SkNx(uint8_t a, uint8_t b, uint8_t c, uint8_t d) in SkNx()
597 AI static SkNx Load(const void* ptr) { return _mm_cvtsi32_si128(*(const int*)ptr); } in Load()
598 AI void store(void* ptr) const { *(int*)ptr = _mm_cvtsi128_si32(fVec); } in store()
600 AI uint8_t operator[](int k) const {
614 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
616 AI SkNx() {} in SkNx()
617 AI SkNx(uint8_t val) : fVec(_mm_set1_epi8(val)) {} in SkNx()
618 AI static SkNx Load(const void* ptr) { return _mm_loadl_epi64((const __m128i*)ptr); } in Load()
619 AI SkNx(uint8_t a, uint8_t b, uint8_t c, uint8_t d, in SkNx()
623 AI void store(void* ptr) const {_mm_storel_epi64((__m128i*)ptr, fVec);} in store()
625 AI SkNx saturatedAdd(const SkNx& o) const { return _mm_adds_epu8(fVec, o.fVec); } in saturatedAdd()
627 AI SkNx operator + (const SkNx& o) const { return _mm_add_epi8(fVec, o.fVec); }
628 AI SkNx operator - (const SkNx& o) const { return _mm_sub_epi8(fVec, o.fVec); }
630 AI static SkNx Min(const SkNx& a, const SkNx& b) { return _mm_min_epu8(a.fVec, b.fVec); } in Min()
631 AI SkNx operator < (const SkNx& o) const {
637 AI uint8_t operator[](int k) const {
643 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
654 AI SkNx(const __m128i& vec) : fVec(vec) {} in SkNx()
656 AI SkNx() {} in SkNx()
657 AI SkNx(uint8_t val) : fVec(_mm_set1_epi8(val)) {} in SkNx()
658 AI static SkNx Load(const void* ptr) { return _mm_loadu_si128((const __m128i*)ptr); } in Load()
659 AI SkNx(uint8_t a, uint8_t b, uint8_t c, uint8_t d, in SkNx()
665 AI void store(void* ptr) const { _mm_storeu_si128((__m128i*)ptr, fVec); } in store()
667 AI SkNx saturatedAdd(const SkNx& o) const { return _mm_adds_epu8(fVec, o.fVec); } in saturatedAdd()
669 AI SkNx operator + (const SkNx& o) const { return _mm_add_epi8(fVec, o.fVec); }
670 AI SkNx operator - (const SkNx& o) const { return _mm_sub_epi8(fVec, o.fVec); }
671 AI SkNx operator & (const SkNx& o) const { return _mm_and_si128(fVec, o.fVec); }
673 AI static SkNx Min(const SkNx& a, const SkNx& b) { return _mm_min_epu8(a.fVec, b.fVec); } in Min()
674 AI SkNx operator < (const SkNx& o) const {
680 AI uint8_t operator[](int k) const {
686 AI SkNx thenElse(const SkNx& t, const SkNx& e) const { in thenElse()
694 template<> AI /*static*/ Sk4f SkNx_cast<float, int32_t>(const Sk4i& src) {
698 template<> AI /*static*/ Sk4f SkNx_cast<float, uint32_t>(const Sk4u& src) {
702 template <> AI /*static*/ Sk4i SkNx_cast<int32_t, float>(const Sk4f& src) {
706 template<> AI /*static*/ Sk4h SkNx_cast<uint16_t, int32_t>(const Sk4i& src) {
721 template<> AI /*static*/ Sk4h SkNx_cast<uint16_t, float>(const Sk4f& src) {
725 template<> AI /*static*/ Sk4b SkNx_cast<uint8_t, float>(const Sk4f& src) {
736 template<> AI /*static*/ Sk4u SkNx_cast<uint32_t, uint8_t>(const Sk4b& src) {
746 template<> AI /*static*/ Sk4i SkNx_cast<int32_t, uint8_t>(const Sk4b& src) {
750 template<> AI /*static*/ Sk4f SkNx_cast<float, uint8_t>(const Sk4b& src) {
754 template<> AI /*static*/ Sk4f SkNx_cast<float, uint16_t>(const Sk4h& src) {
759 template<> AI /*static*/ Sk8b SkNx_cast<uint8_t, int32_t>(const Sk8i& src) {
767 template<> AI /*static*/ Sk16b SkNx_cast<uint8_t, float>(const Sk16f& src) {
781 template<> AI /*static*/ Sk4h SkNx_cast<uint16_t, uint8_t>(const Sk4b& src) {
785 template<> AI /*static*/ Sk8h SkNx_cast<uint16_t, uint8_t>(const Sk8b& src) {
789 template<> AI /*static*/ Sk4b SkNx_cast<uint8_t, uint16_t>(const Sk4h& src) {
793 template<> AI /*static*/ Sk8b SkNx_cast<uint8_t, uint16_t>(const Sk8h& src) {
797 template<> AI /*static*/ Sk4i SkNx_cast<int32_t, uint16_t>(const Sk4h& src) {
802 template<> AI /*static*/ Sk4b SkNx_cast<uint8_t, int32_t>(const Sk4i& src) {
806 template<> AI /*static*/ Sk4b SkNx_cast<uint8_t, uint32_t>(const Sk4u& src) {
810 template<> AI /*static*/ Sk4i SkNx_cast<int32_t, uint32_t>(const Sk4u& src) {
814 AI static Sk4i Sk4f_round(const Sk4f& x) { in Sk4f_round()