H A D | SkVx.h | 11 // skvx::Vec<N,T> are SIMD vectors of N T's, a v1.5 successor to SkNx<N,T>. 18 // with across translation units. skvx::Vec<N,T> always has N*sizeof(T) size 57 struct alignas(N*sizeof(T)) Vec; member 60 SI Vec<sizeof...(Ix),T> shuffle(const Vec<N,T>&); 65 // All Vec have the same simple memory layout, the same as `T vec[N]`. 71 Vec<N/2,T> lo, hi; 79 SKVX_ALWAYS_INLINE VecStorage(Vec<2,T> xy, T z, T w) : lo(xy), hi(z,w) {} in VecStorage() 80 SKVX_ALWAYS_INLINE VecStorage(T x, T y, Vec<2,T> zw) : lo(x,y), hi(zw) {} in VecStorage() 81 SKVX_ALWAYS_INLINE VecStorage(Vec< in VecStorage() 140 SKVX_ALWAYS_INLINE Vec(std::initializer_list<T> xs) { Vec() function 162 struct Vec<1,T> { global() struct 167 Vec(T s) : val(s) {} Vec() function 169 SKVX_ALWAYS_INLINE Vec(std::initializer_list<T> xs) : val(xs.size() ? *xs.begin() : 0) {} Vec() function 206 join(const Vec<N,T>& lo, const Vec<N,T>& hi) join() argument 241 to_vext(const Vec<N,T>& v) to_vext() argument 244 operator +(const Vec<N,T>& x, const Vec<N,T>& y) operator +() argument 247 operator -(const Vec<N,T>& x, const Vec<N,T>& y) operator -() argument 250 operator *(const Vec<N,T>& x, const Vec<N,T>& y) operator *() argument 253 operator /(const Vec<N,T>& x, const Vec<N,T>& y) operator /() argument 257 operator ^(const Vec<N,T>& x, const Vec<N,T>& y) operator ^() argument 260 operator &(const Vec<N,T>& x, const Vec<N,T>& y) operator &() argument 263 operator |(const Vec<N,T>& x, const Vec<N,T>& y) operator |() argument 267 operator !(const Vec<N,T>& x) operator !() argument 268 operator -(const Vec<N,T>& x) operator -() argument 269 operator ~(const Vec<N,T>& x) operator ~() argument 271 operator <<(const Vec<N,T>& x, int k) operator <<() argument 272 operator >>(const Vec<N,T>& x, int k) operator >>() argument 274 operator ==(const Vec<N,T>& x, const Vec<N,T>& y) operator ==() argument 277 operator !=(const Vec<N,T>& x, const Vec<N,T>& y) operator !=() argument 280 operator <=(const Vec<N,T>& x, const Vec<N,T>& y) operator <=() argument 283 operator >=(const Vec<N,T>& x, const Vec<N,T>& y) operator >=() argument 286 operator <(const Vec<N,T>& x, const Vec<N,T>& y) operator <() argument 289 operator >(const Vec<N,T>& x, const Vec<N,T>& y) operator >() argument 299 operator +(const Vec<1,T>& x, const Vec<1,T>& y) operator +() argument 300 operator -(const Vec<1,T>& x, const Vec<1,T>& y) operator -() argument 301 operator *(const Vec<1,T>& x, const Vec<1,T>& y) operator *() argument 302 operator /(const Vec<1,T>& x, const Vec<1,T>& y) operator /() argument 304 operator ^(const Vec<1,T>& x, const Vec<1,T>& y) operator ^() argument 305 operator &(const Vec<1,T>& x, const Vec<1,T>& y) operator &() argument 306 operator |(const Vec<1,T>& x, const Vec<1,T>& y) operator |() argument 308 operator !(const Vec<1,T>& x) operator !() argument 309 operator -(const Vec<1,T>& x) operator -() argument 310 operator ~(const Vec<1,T>& x) operator ~() argument 312 operator <<(const Vec<1,T>& x, int k) operator <<() argument 313 operator >>(const Vec<1,T>& x, int k) operator >>() argument 315 operator ==(const Vec<1,T>& x, const Vec<1,T>& y) operator ==() argument 318 operator !=(const Vec<1,T>& x, const Vec<1,T>& y) operator !=() argument 321 operator <=(const Vec<1,T>& x, const Vec<1,T>& y) operator <=() argument 324 operator >=(const Vec<1,T>& x, const Vec<1,T>& y) operator >=() argument 327 operator <(const Vec<1,T>& x, const Vec<1,T>& y) operator <() argument 330 operator >(const Vec<1,T>& x, const Vec<1,T>& y) operator >() argument 335 operator +(const Vec<N,T>& x, const Vec<N,T>& y) operator +() argument 338 operator -(const Vec<N,T>& x, const Vec<N,T>& y) operator -() argument 341 operator *(const Vec<N,T>& x, const Vec<N,T>& y) operator *() argument 344 operator /(const Vec<N,T>& x, const Vec<N,T>& y) operator /() argument 348 operator ^(const Vec<N,T>& x, const Vec<N,T>& y) operator ^() argument 351 operator &(const Vec<N,T>& x, const Vec<N,T>& y) operator &() argument 354 operator |(const Vec<N,T>& x, const Vec<N,T>& y) operator |() argument 358 operator !(const Vec<N,T>& x) operator !() argument 359 operator -(const Vec<N,T>& x) operator -() argument 360 operator ~(const Vec<N,T>& x) operator ~() argument 362 operator <<(const Vec<N,T>& x, int k) operator <<() argument 363 operator >>(const Vec<N,T>& x, int k) operator >>() argument 365 operator ==(const Vec<N,T>& x, const Vec<N,T>& y) operator ==() argument 368 operator !=(const Vec<N,T>& x, const Vec<N,T>& y) operator !=() argument 371 operator <=(const Vec<N,T>& x, const Vec<N,T>& y) operator <=() argument 374 operator >=(const Vec<N,T>& x, const Vec<N,T>& y) operator >=() argument 377 operator <(const Vec<N,T>& x, const Vec<N,T>& y) operator <() argument 380 operator >(const Vec<N,T>& x, const Vec<N,T>& y) operator >() argument 386 operator +(U x, const Vec<N,T>& y) operator +() argument 387 operator -(U x, const Vec<N,T>& y) operator -() argument 388 operator *(U x, const Vec<N,T>& y) operator *() argument 389 operator /(U x, const Vec<N,T>& y) operator /() argument 390 operator ^(U x, const Vec<N,T>& y) operator ^() argument 391 operator &(U x, const Vec<N,T>& y) operator &() argument 392 operator |(U x, const Vec<N,T>& y) operator |() argument 393 operator ==(U x, const Vec<N,T>& y) operator ==() argument 394 operator !=(U x, const Vec<N,T>& y) operator !=() argument 395 operator <=(U x, const Vec<N,T>& y) operator <=() argument 396 operator >=(U x, const Vec<N,T>& y) operator >=() argument 397 operator <(U x, const Vec<N,T>& y) operator <() argument 398 operator >(U x, const Vec<N,T>& y) operator >() argument 400 operator +(const Vec<N,T>& x, U y) operator +() argument 401 operator -(const Vec<N,T>& x, U y) operator -() argument 402 operator *(const Vec<N,T>& x, U y) operator *() argument 403 operator /(const Vec<N,T>& x, U y) operator /() argument 404 operator ^(const Vec<N,T>& x, U y) operator ^() argument 405 operator &(const Vec<N,T>& x, U y) operator &() argument 406 operator |(const Vec<N,T>& x, U y) operator |() argument 407 operator ==(const Vec<N,T>& x, U y) operator ==() argument 408 operator !=(const Vec<N,T>& x, U y) operator !=() argument 409 operator <=(const Vec<N,T>& x, U y) operator <=() argument 410 operator >=(const Vec<N,T>& x, U y) operator >=() argument 411 operator <(const Vec<N,T>& x, U y) operator <() argument 412 operator >(const Vec<N,T>& x, U y) operator >() argument 414 operator +=(Vec<N,T>& x, const Vec<N,T>& y) operator +=() argument 415 operator -=(Vec<N,T>& x, const Vec<N,T>& y) operator -=() argument 416 operator *=(Vec<N,T>& x, const Vec<N,T>& y) operator *=() argument 417 operator /=(Vec<N,T>& x, const Vec<N,T>& y) operator /=() argument 418 operator ^=(Vec<N,T>& x, const Vec<N,T>& y) operator ^=() argument 419 operator &=(Vec<N,T>& x, const Vec<N,T>& y) operator &=() argument 420 operator |=(Vec<N,T>& x, const Vec<N,T>& y) operator |=() argument 438 naive_if_then_else(const Vec<N,M<T>>& cond, const Vec<N,T>& t, const Vec<N,T>& e) naive_if_then_else() argument 443 if_then_else(const Vec<1,M<T>>& cond, const Vec<1,T>& t, const Vec<1,T>& e) if_then_else() argument 448 if_then_else(const Vec<N,M<T>>& cond, const Vec<N,T>& t, const Vec<N,T>& e) if_then_else() argument 481 any(const Vec<1,T>& x) any() argument 482 any(const Vec<N,T>& x) any() argument 492 all(const Vec<1,T>& x) all() argument 493 all(const Vec<N,T>& x) all() argument 518 cast(const Vec<1,S>& src) cast() argument 521 cast(const Vec<N,S>& src) cast() argument 530 min(const Vec<1,T>& x) min() argument 531 max(const Vec<1,T>& x) max() argument 532 min(const Vec<N,T>& x) min() argument 533 max(const Vec<N,T>& x) max() argument 535 min(const Vec<N,T>& x, const Vec<N,T>& y) min() argument 536 max(const Vec<N,T>& x, const Vec<N,T>& y) max() argument 538 min(const Vec<N,T>& x, U y) min() argument 539 max(const Vec<N,T>& x, U y) max() argument 540 min(U x, const Vec<N,T>& y) min() argument 541 max(U x, const Vec<N,T>& y) max() argument 545 pin(const Vec<N,T>& x, const Vec<N,T>& lo, const Vec<N,T>& hi) pin() argument 557 shuffle(const Vec<N,T>& x) shuffle() argument 587 map(Fn&& fn, const Vec<N,T>& first, const Rest&... rest) map() argument 592 ceil(const Vec<N,float>& x) ceil() argument 593 floor(const Vec<N,float>& x) floor() argument 594 trunc(const Vec<N,float>& x) trunc() argument 595 round(const Vec<N,float>& x) round() argument 596 sqrt(const Vec<N,float>& x) sqrt() argument 597 abs(const Vec<N,float>& x) abs() argument 598 fma(const Vec<N,float>& x, const Vec<N,float>& y, const Vec<N,float>& z) fma() argument 606 lrint(const Vec<1,float>& x) lrint() argument 609 lrint(const Vec<N,float>& x) lrint() argument 624 fract(const Vec<N,float>& x) fract() argument 631 to_half_finite_ftz(const Vec<N,float>& x) to_half_finite_ftz() argument 639 from_half_finite_ftz(const Vec<N,uint16_t>& x) from_half_finite_ftz() argument 649 to_half(const Vec<1,float>& x) to_half() argument 650 from_half(const Vec<1,uint16_t>& x) from_half() argument 652 to_half(const Vec<N,float>& x) to_half() argument 672 from_half(const Vec<N,uint16_t>& x) from_half() argument 691 div255(const Vec<N,uint16_t>& x) div255() argument 697 approx_scale(const Vec<N,uint8_t>& x, const Vec<N,uint8_t>& y) approx_scale() argument 731 divide(const Vec<4, uint32_t>& numerator) const divide() argument 751 mull(const Vec<8,uint8_t>& x, const Vec<8,uint8_t>& y) mull() argument 764 mull(const Vec<N,uint8_t>& x, const Vec<N,uint8_t>& y) mull() argument 772 mull(const Vec<N,uint8_t>& x, const Vec<N,uint8_t>& y) mull() argument [all...] |