On Thursday 26 August 2010 15:09:32 Soeren Sandmann wrote: > Siarhei Siamashka <siarhei.siamas...@gmail.com> writes: > > +.macro pixman_composite_src_n_8_0565_process_pixblock_head > > + /* in */ > > + vmull.u8 q15, d24, d2 > > + vmull.u8 q3, d24, d1 > > + vmull.u8 q2, d24, d0 > > + vrshr.u16 q12, q15, #8 > > + vrshr.u16 q11, q3, #8 > > + vrshr.u16 q10, q2, #8 > > + vraddhn.u16 d16, q15, q12 > > + vraddhn.u16 d19, q3, q11 > > + vraddhn.u16 d18, q2, q10 > > +.endm > > + > > +.macro pixman_composite_src_n_8_0565_process_pixblock_tail > > + /* convert to r5g6b5 */ > > + vshll.u8 q14, d16, #8 > > + vshll.u8 q8, d19, #8 > > + vshll.u8 q9, d18, #8 > > + vsri.u16 q14, q8, #5 > > + vsri.u16 q14, q9, #11 > > +.endm > > It's remarkable how much NEON can do with so few instructions.
ARM NEON is indeed very nice to work with, it's probably one of the best SIMD extensions around. > > static const pixman_fast_path_t arm_neon_fast_paths[] = > > { > > > > + PIXMAN_STD_FAST_PATH (SRC, a8r8g8b8, a8, r5g6b5, > > neon_composite_src_8888_8_0565), + PIXMAN_STD_FAST_PATH (SRC, > > a8b8g8r8, a8, b5g6r5, neon_composite_src_8888_8_0565), > > It seems like this fast path will work as src_x888_8_0565 as well > since the alpha channel is completely ignored. Right. That's a good catch. -- Best regards, Siarhei Siamashka
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman