Lines Matching refs:dst

25     static inline __m512i SkPMSrcOver_SKX(const __m512i& src, const __m512i& dst) {
40 __m512i rb = _mm512_and_si512(_mm512_set1_epi32(0x00ff00ff), dst);
45 __m512i ga = _mm512_srli_epi16(dst, 8);
56 static inline __m256i SkPMSrcOver_AVX2(const __m256i& src, const __m256i& dst) {
75 // handling dst red and blue, the other green and alpha. (They're
89 __m256i rb = _mm256_and_si256(_mm256_set1_epi32(0x00ff00ff), dst);
94 __m256i ga = _mm256_srli_epi16(dst, 8);
105 static inline __m128i SkPMSrcOver_SSE2(const __m128i& src, const __m128i& dst) {
110 __m128i rb = _mm_and_si128(_mm_set1_epi32(0x00ff00ff), dst);
114 __m128i ga = _mm_srli_epi16(dst, 8);
131 static inline uint8x8x4_t SkPMSrcOver_neon8(uint8x8x4_t dst, uint8x8x4_t src) {
134 vadd_u8(src.val[0], SkMulDiv255Round_neon8(nalphas, dst.val[0])),
135 vadd_u8(src.val[1], SkMulDiv255Round_neon8(nalphas, dst.val[1])),
136 vadd_u8(src.val[2], SkMulDiv255Round_neon8(nalphas, dst.val[2])),
137 vadd_u8(src.val[3], SkMulDiv255Round_neon8(nalphas, dst.val[3])),
141 // Variant assuming dst and src contain the color components of two consecutive pixels.
142 static inline uint8x8_t SkPMSrcOver_neon2(uint8x8_t dst, uint8x8_t src) {
145 return vadd_u8(src, SkMulDiv255Round_neon8(nalphas, dst));
153 inline void blit_row_s32a_opaque(SkPMColor* dst, const SkPMColor* src, int len, U8CPU alpha) {
159 _mm512_storeu_si512((__m512*)dst,
161 _mm512_loadu_si512((const __m512i*)dst)));
163 dst += 16;
170 _mm256_storeu_si256((__m256i*)dst,
172 _mm256_loadu_si256((const __m256i*)dst)));
174 dst += 8;
181 _mm_storeu_si128((__m128i*)dst, SkPMSrcOver_SSE2(_mm_loadu_si128((const __m128i*)src),
182 _mm_loadu_si128((const __m128i*)dst)));
184 dst += 4;
191 vst4_u8((uint8_t*)dst, SkPMSrcOver_neon8(vld4_u8((const uint8_t*)dst),
194 dst += 8;
199 vst1_u8((uint8_t*)dst, SkPMSrcOver_neon2(vld1_u8((const uint8_t*)dst),
202 dst += 2;
207 uint8x8_t result = SkPMSrcOver_neon2(vcreate_u8((uint64_t)*dst),
209 vst1_lane_u32(dst, vreinterpret_u32_u8(result), 0);
215 *dst = SkPMSrcOver(*src, *dst);
217 dst++;
221 // Blend constant color over count src pixels, writing into dst.
223 inline void blit_row_color32(SkPMColor* dst, const SkPMColor* src, int count, SkPMColor color) {
244 kernel(U32::Load(src)).store(dst);
246 dst += N;
250 *dst++ = kernel(U32{*src++})[0];