On Thursday 26 August 2010 15:09:32 Soeren Sandmann wrote: > Siarhei Siamashka <[email protected]> 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 [email protected] http://lists.freedesktop.org/mailman/listinfo/pixman
