| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef SkNx_neon_DEFINED | 8 #ifndef SkNx_neon_DEFINED |
| 9 #define SkNx_neon_DEFINED | 9 #define SkNx_neon_DEFINED |
| 10 | 10 |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 SkNi operator << (int bits) const { SHIFT16(vshlq_n_u16, fVec, bits); } | 330 SkNi operator << (int bits) const { SHIFT16(vshlq_n_u16, fVec, bits); } |
| 331 SkNi operator >> (int bits) const { SHIFT16(vshrq_n_u16, fVec, bits); } | 331 SkNi operator >> (int bits) const { SHIFT16(vshrq_n_u16, fVec, bits); } |
| 332 | 332 |
| 333 static SkNi Min(const SkNi& a, const SkNi& b) { return vminq_u16(a.fVec, b.f
Vec); } | 333 static SkNi Min(const SkNi& a, const SkNi& b) { return vminq_u16(a.fVec, b.f
Vec); } |
| 334 | 334 |
| 335 template <int k> uint16_t kth() const { | 335 template <int k> uint16_t kth() const { |
| 336 SkASSERT(0 <= k && k < 8); | 336 SkASSERT(0 <= k && k < 8); |
| 337 return vgetq_lane_u16(fVec, k&7); | 337 return vgetq_lane_u16(fVec, k&7); |
| 338 } | 338 } |
| 339 | 339 |
| 340 SkNi thenElse(const SkNi& t, const SkNi& e) const { |
| 341 return vorrq_u16(vandq_u16(t.fVec, fVec), |
| 342 vbicq_u16(e.fVec, fVec)); |
| 343 } |
| 344 |
| 340 uint16x8_t fVec; | 345 uint16x8_t fVec; |
| 341 }; | 346 }; |
| 342 | 347 |
| 343 template <> | 348 template <> |
| 344 class SkNi<16, uint8_t> { | 349 class SkNi<16, uint8_t> { |
| 345 public: | 350 public: |
| 346 SkNi(const uint8x16_t& vec) : fVec(vec) {} | 351 SkNi(const uint8x16_t& vec) : fVec(vec) {} |
| 347 | 352 |
| 348 SkNi() {} | 353 SkNi() {} |
| 349 explicit SkNi(uint8_t val) : fVec(vdupq_n_u8(val)) {} | 354 explicit SkNi(uint8_t val) : fVec(vdupq_n_u8(val)) {} |
| (...skipping 29 matching lines...) Expand all Loading... |
| 379 uint8x16_t fVec; | 384 uint8x16_t fVec; |
| 380 }; | 385 }; |
| 381 | 386 |
| 382 #undef SHIFT32 | 387 #undef SHIFT32 |
| 383 #undef SHIFT16 | 388 #undef SHIFT16 |
| 384 #undef SHIFT8 | 389 #undef SHIFT8 |
| 385 | 390 |
| 386 } // namespace | 391 } // namespace |
| 387 | 392 |
| 388 #endif//SkNx_neon_DEFINED | 393 #endif//SkNx_neon_DEFINED |
| OLD | NEW |