Lines Matching refs:bit_pun

63 SI D bit_pun(const S&);
98 SKVX_ALWAYS_INLINE Vec<4,T> yxwz() const { return shuffle<1,0,3,2>(bit_pun<Vec<4,T>>(*this)); }
99 SKVX_ALWAYS_INLINE Vec<4,T> zwxy() const { return shuffle<2,3,0,1>(bit_pun<Vec<4,T>>(*this)); }
117 SKVX_ALWAYS_INLINE Vec<2,T> yx() const { return shuffle<1,0>(bit_pun<Vec<2,T>>(*this)); }
120 return Vec<4,T>(bit_pun<Vec<2,T>>(*this), bit_pun<Vec<2,T>>(*this));
184 // Ideally we'd only use bit_pun(), but until this file is always built as C++17 with constexpr if,
194 SI D bit_pun(const S& s) {
238 SI Vec<4,float> to_vec(VExt<4,float> v) { return bit_pun<Vec<4,float>>(v); }
241 SINT VExt<N,T> to_vext(const Vec<N,T>& v) { return bit_pun<VExt<N,T>>(v); }
242 SINT Vec <N,T> to_vec(const VExt<N,T>& v) { return bit_pun<Vec <N,T>>(v); }
275 return bit_pun<Vec<N,M<T>>>(to_vext(x) == to_vext(y));
278 return bit_pun<Vec<N,M<T>>>(to_vext(x) != to_vext(y));
281 return bit_pun<Vec<N,M<T>>>(to_vext(x) <= to_vext(y));
284 return bit_pun<Vec<N,M<T>>>(to_vext(x) >= to_vext(y));
287 return bit_pun<Vec<N,M<T>>>(to_vext(x) < to_vext(y));
290 return bit_pun<Vec<N,M<T>>>(to_vext(x) > to_vext(y));
439 return bit_pun<Vec<N,T>>(( cond & bit_pun<Vec<N, M<T>>>(t)) |
440 (~cond & bit_pun<Vec<N, M<T>>>(e)) );
445 return bit_pun<Vec<1,T>>(( cond & bit_pun<Vec<1, M<T>>>(t)) |
446 (~cond & bit_pun<Vec<1, M<T>>>(e)) );
632 Vec<N,uint32_t> sem = bit_pun<Vec<N,uint32_t>>(x),
643 auto is_denorm = bit_pun<Vec<N,int32_t>>(em < 0x0400);
645 , bit_pun<Vec<N,float>>( (s<<16) + (em<<13) + ((127-15)<<23) ));
843 a = skvx::bit_pun<skvx::Vec<N,T>>(mat.val[0]); \
844 b = skvx::bit_pun<skvx::Vec<N,T>>(mat.val[1]); \
845 c = skvx::bit_pun<skvx::Vec<N,T>>(mat.val[2]); \
846 d = skvx::bit_pun<skvx::Vec<N,T>>(mat.val[3]); \
869 using skvx::bit_pun;
875 a = bit_pun<Vec<4,float>>(a_);
876 b = bit_pun<Vec<4,float>>(b_);
877 c = bit_pun<Vec<4,float>>(c_);
878 d = bit_pun<Vec<4,float>>(d_);
900 a = skvx::bit_pun<skvx::Vec<N,T>>(mat.val[0]); \
901 b = skvx::bit_pun<skvx::Vec<N,T>>(mat.val[1]); \