[Pixman] [PATCH 2/2] ARM: added 'neon_composite_src_8888_8_0565' fast path
Siarhei Siamashka
siarhei.siamashka at gmail.com
Mon Aug 30 04:35:23 PDT 2010
On Thursday 26 August 2010 15:09:32 Soeren Sandmann wrote:
> Siarhei Siamashka <siarhei.siamashka at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/pixman/attachments/20100830/1e804415/attachment.pgp>
More information about the Pixman
mailing list