Lines Matching refs:U32
118 using U32 = uint32_t; variable
130 SI U32 round (F v, F scale) { return (uint32_t)(v*scale + 0.5f); } in round()
131 SI U16 pack(U32 v) { return (U16)v; } in pack()
137 SI T gather(const T* p, U32 ix) { return p[ix]; } in gather()
192 using U32 = V<uint32_t>;
202 SI U16 pack(U32 v) { return __builtin_convertvector(v, U16); }
205 SI F if_then_else(I32 c, F t, F e) { return vbslq_f32((U32)c,t,e); }
211 SI U32 round(F v, F scale) { return vcvtnq_u32_f32(v*scale); }
226 SI U32 round(F v, F scale) {
233 SI V<T> gather(const T* p, U32 ix) {
345 using U32 = V<uint32_t>;
364 SI U32 round (F v, F scale) { return _mm256_cvtps_epi32(v*scale); }
366 SI U16 pack(U32 v) {
378 SI V<T> gather(const T* p, U32 ix) {
383 SI F gather(const float* p, U32 ix) { return _mm256_i32gather_ps (p, ix, 4); }
384 SI U32 gather(const uint32_t* p, U32 ix) { return _mm256_i32gather_epi32(p, ix, 4); }
385 SI U64 gather(const uint64_t* p, U32 ix) {
683 using U32 = V<uint32_t>;
694 SI U32 round(F v, F scale) { return _mm_cvtps_epi32(v*scale); }
696 SI U16 pack(U32 v) {
726 SI V<T> gather(const T* p, U32 ix) {
754 U32 rg = _mm_unpacklo_epi16(widen_cast<__m128i>(r), widen_cast<__m128i>(g));
913 SI F cast (U32 v) { return (F)v; } in cast()
915 SI U32 trunc_(F v) { return (U32)v; } in trunc_()
916 SI U32 expand(U16 v) { return (U32)v; } in expand()
917 SI U32 expand(U8 v) { return (U32)v; } in expand()
919 SI F cast (U32 v) { return __builtin_convertvector((I32)v, F); } in cast()
921 SI U32 trunc_(F v) { return (U32)__builtin_convertvector( v, I32); } in trunc_()
922 SI U32 expand(U16 v) { return __builtin_convertvector( v, U32); } in expand()
923 SI U32 expand(U8 v) { return __builtin_convertvector( v, U32); } in expand()
948 F e = cast(bit_cast<U32>(x)) * (1.0f / (1<<23)); in approx_log2()
951 F m = bit_cast<F>((bit_cast<U32>(x) & 0x007fffff) | 0x3f000000); in approx_log2()
984 U32 sem = expand(h), in from_half()
1005 U32 sem = bit_cast<U32>(f), in to_half()
1011 return pack(if_then_else(denorm, U32(0) in to_half()
1181 U32 wide = expand(_565); in from_565()
1187 U32 wide = expand(_4444); in from_4444()
1193 SI void from_8888(U32 _8888, F* r, F* g, F* b, F* a) { in from_8888()
1200 U32 wide = expand(_88); in from_88()
1204 SI void from_1010102(U32 rgba, F* r, F* g, F* b, F* a) { in from_1010102()
1210 SI void from_1616(U32 _1616, F* r, F* g) { in from_1616()
1229 F inclusive = bit_cast<F>( bit_cast<U32>(limit) - 1 ); // Exclusive -> inclusive. in clamp()
1235 SI U32 ix_and_ptr(T** ptr, const SkRasterPipeline_GatherCtx* ctx, F x, F y) { in ix_and_ptr()
1250 SI U32 to_unorm(F v, F scale, F bias = 1.0f) {
1278 U32 X = dx + sk_unaligned_load<U32>(iota), in STAGE()
1289 U32 M = (Y & 1) << 5 | (X & 1) << 4 in STAGE()
1561 U32 dst = load<U32>(ptr, tail); in STAGE()
1811 SI F strip_sign(F x, U32* sign) { in strip_sign()
1812 U32 bits = bit_cast<U32>(x); in strip_sign()
1817 SI F apply_sign(F x, U32 sign) { in apply_sign()
1818 return bit_cast<F>(sign | bit_cast<U32>(x)); in apply_sign()
1823 U32 sign; in STAGE()
1837 U32 sign; in STAGE()
1848 U32 sign; in STAGE()
1860 U32 sign; in STAGE()
1902 U32 ix = ix_and_ptr(&ptr, ctx, r,g); in STAGE()
1927 U32 ix = ix_and_ptr(&ptr, ctx, r,g); in STAGE()
1950 U32 ix = ix_and_ptr(&ptr, ctx, r,g); in STAGE()
1964 from_8888(load<U32>(ptr, tail), &r,&g,&b,&a); in STAGE()
1968 from_8888(load<U32>(ptr, tail), &dr,&dg,&db,&da); in STAGE()
1972 U32 ix = ix_and_ptr(&ptr, ctx, r,g); in STAGE()
1978 U32 px = to_unorm(r, 255) in STAGE()
2013 from_1616(load<U32>(ptr, tail), &r,&g); in STAGE()
2018 U32 px = to_unorm(r, 65535) in STAGE()
2040 from_1010102(load<U32>(ptr, tail), &r,&g,&b,&a); in STAGE()
2044 from_1010102(load<U32>(ptr, tail), &dr,&dg,&db,&da); in STAGE()
2048 U32 ix = ix_and_ptr(&ptr, ctx, r,g); in STAGE()
2054 U32 px = to_unorm(r, 1023) in STAGE()
2083 U32 ix = ix_and_ptr(&ptr, ctx, r,g); in STAGE()
2152 U32 ix = ix_and_ptr(&ptr, ctx, r,g); in STAGE()
2219 auto mask = sk_unaligned_load<U32>(ctx->mask); in STAGE()
2220 r = bit_cast<F>( bit_cast<U32>(r) & mask ); in STAGE()
2221 g = bit_cast<F>( bit_cast<U32>(g) & mask ); in STAGE()
2222 b = bit_cast<F>( bit_cast<U32>(b) & mask ); in STAGE()
2223 a = bit_cast<F>( bit_cast<U32>(a) & mask ); in STAGE()
2297 SI void gradient_lookup(const SkRasterPipeline_GradientCtx* c, U32 idx, F t, in gradient_lookup()
2337 U32 idx = 0; in STAGE()
2341 idx += if_then_else(t >= c->ts[i], U32(1), U32(0)); in STAGE()
2445 const U32 mask = sk_unaligned_load<U32>(ctx); in STAGE()
2446 r = bit_cast<F>(bit_cast<U32>(r) & mask); in STAGE()
2447 g = bit_cast<F>(bit_cast<U32>(g) & mask); in STAGE()
2448 b = bit_cast<F>(bit_cast<U32>(b) & mask); in STAGE()
2449 a = bit_cast<F>(bit_cast<U32>(a) & mask); in STAGE()
2643 U32 ix = ix_and_ptr(&ptr, ctx, x,y); in sample()
2715 U32 ix = ix_and_ptr(&ptr, ctx, x,y); in STAGE()
2766 U32 ix = ix_and_ptr(&ptr, ctx, sample_x, sample_y); in STAGE()
2822 using U32 = uint32_t __attribute__((ext_vector_type(16)));
2829 using U32 = uint32_t __attribute__((ext_vector_type(8)));
3002 SI U32 if_then_else(I32 c, U32 t, U32 e) { return (t & c) | (e & ~c); }
3040 SI U32 trunc_(F x) { return (U32)cast<I32>(x); }
3286 SI U32 ix_and_ptr(T** ptr, const SkRasterPipeline_GatherCtx* ctx, F x, F y) {
3288 limit = bit_cast<F>( bit_cast<U32>(limit) - 1 ); // Exclusive -> inclusive.
3349 SI V gather(const T* ptr, U32 ix) {
3357 F gather(const float* ptr, U32 ix) {
3366 U32 gather(const uint32_t* ptr, U32 ix) {
3370 return join<U32>(_mm256_i32gather_epi32(ptr, lo, 4),
3375 SI V gather(const T* ptr, U32 ix) {
3384 SI void from_8888(U32 rgba, U16* r, U16* g, U16* b, U16* a) {
3391 rgba = join<U32>(_02, _13);
3393 auto cast_U16 = [](U32 v) -> U16 {
3399 auto cast_U16 = [](U32 v) -> U16 {
3427 from_8888(load<U32>(ptr, tail), r,g,b,a);
3449 store(ptr, tail, cast<U32>(r | (g<<8)) << 0
3450 | cast<U32>(b | (a<<8)) << 16);
3465 U32 ix = ix_and_ptr(&ptr, ctx, x,y);
3466 from_8888(gather<U32>(ptr, ix), &r, &g, &b, &a);
3511 U32 ix = ix_and_ptr(&ptr, ctx, x,y);
3556 U32 ix = ix_and_ptr(&ptr, ctx, x,y);
3637 U32 ix = ix_and_ptr(&ptr, ctx, x,y);
3805 SI void gradient_lookup(const SkRasterPipeline_GradientCtx* c, U32 idx, F t,
3852 U32 idx = 0;
3856 idx += if_then_else(t >= c->ts[i], U32(1), U32(0));
3954 U32 ix = ix_and_ptr(&ptr, ctx, x,y);
3957 from_8888(gather<U32>(ptr, ix), &sr,&sg,&sb,&sa);
4010 U32 ix = ix_and_ptr(&ptr, ctx, x,y);
4011 from_8888(gather<U32>(ptr, ix), r,g,b,a);