Home | History | Annotate | Download | only in opts

Lines Matching refs:fx

17 static void decal_nofilter_scale_neon(uint32_t dst[], SkFixed fx, SkFixed dx, int count);
18 static void decal_filter_scale_neon(uint32_t dst[], SkFixed fx, SkFixed dx, int count);
20 // TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max)
34 // TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max)
49 static inline int32x4_t sbpsm_clamp_tile4_low_bits(int32x4_t fx) {
52 ret = vshrq_n_s32(fx, 12);
62 // TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16)
80 // TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16)
97 // EXTRACT_LOW_BITS(fx, max) ((((fx) & 0xFFFF) * ((max) + 1) >> 12) & 0xF)
98 static inline int32x4_t sbpsm_repeat_tile4_low_bits(int32x4_t fx, unsigned max) {
104 res = vmovn_u32(vreinterpretq_u32_s32(fx));
121 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max)
125 #define TILEX_PROCF_NEON4(fx, max) sbpsm_clamp_tile4(fx, max)
133 #define TILEX_PROCF(fx, max) SK_USHIFT16(((fx) & 0xFFFF) * ((max) + 1))
137 #define TILEX_PROCF_NEON4(fx, max) sbpsm_repeat_tile4(fx, max)
145 void decal_nofilter_scale_neon(uint32_t dst[], SkFixed fx, SkFixed dx, int count) {
153 lbase = vdupq_n_s32(fx);
154 lbase = vsetq_lane_s32(fx + dx, lbase, 1);
155 lbase = vsetq_lane_s32(fx + dx + dx, lbase, 2);
156 lbase = vsetq_lane_s32(fx + dx + dx + dx, lbase, 3);
170 fx += dx8;
176 *xx++ = SkToU16(fx >> 16); fx += dx;
180 void decal_filter_scale_neon(uint32_t dst[], SkFixed fx, SkFixed dx, int count) {
186 wide_fx = vdupq_n_s32(fx);
187 wide_fx = vsetq_lane_s32(fx + dx, wide_fx, 1);
188 wide_fx = vsetq_lane_s32(fx + dx + dx, wide_fx, 2);
189 wide_fx = vsetq_lane_s32(fx + dx + dx + dx, wide_fx, 3);
207 fx += dx8;
216 SkASSERT((fx >> (16 + 14)) == 0);
217 *dst++ = (fx >> 12 << 14) | ((fx >> 16) + 1);
218 fx += dx;
222 SkASSERT((fx >> (16 + 14)) == 0);
223 *dst++ = (fx >> 12 << 14) | ((fx >> 16) + 1);
224 fx += dx;
226 *dst++ = (fx >> 12 << 14) | ((fx >> 16) + 1);
227 fx += dx;