On Wednesday, May 14, 2014, Janne Grunau <[email protected]> wrote:

> On 2014-05-13 23:25:12 +0800, [email protected] <javascript:;> wrote:
> > From: James Yu <[email protected] <javascript:;>>
> >
> > Using NEON intrinsics to support ARMv7 and ARMv8 simultaneously.
> > Rewrite ARMv7 assembly to intinsics version.
>
> Thanks for the patch. We prefer asm over intrinsics especially for
> functions
> with existing ARMv7 NEON asm.
> For new functions intrinsics have the advantage that they can be shared
> between AArch64 and ARMv7. That is reason enough to support intrinsics.
>
> Rewrite neon asm to neon intrinsics is a way to port and optimize libs to
aarch64. However it has some performance problem we already know.


> > Toolchain:
> > armv7: gcc-linaro-arm-linux-gnueabihf-4.8-2014.01_linux
> > armv8: gcc-linaro-aarch64-linux-gnu-4.8-2013.10_linux
>
> clang 3.4 on AArch64 seems to fail over its own arm_neon.h header
>
> I didn't try to build by clang.


> > [RFC] Currently, libavcodec had a aarch64 dir includes all related
> > assembly code. However, I put this file under libavcodec/arm dir first,
> > since this > support ARMv7 and ARMv8 simultaneously. And RFC how could we
> > port and optimize libav to aarch64.
> >
> > Add libavcodec/arm/mpegvideo_neon.c.
>
> That conflicts with the existing libavcodec/arm/mpegvideo_neon.S since both
> result in the object file libavcodec/arm/mpegvideo_neon.o
>
> Yes, I know. But if we rebuild all, it should build .c file.  Anyway I
just put there first and wait for comments, thanks. How about put in
libavcodec/aarch64? Since it support aarch64.


> I think a cleaner solution would be to put the shared intrinsics code in
> another directory, libavcodec/neon for example. I have a working patch for
> that including configure checks we need for arm_neon.h.
>
> > Signed-off-by: James Yu <[email protected] <javascript:;>>
> > ---
> >  libavcodec/aarch64/Makefile     |    1 +
> >  libavcodec/arm/mpegvideo_neon.c |  127
> +++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 128 insertions(+)
> >  create mode 100644 libavcodec/arm/mpegvideo_neon.c
>
> It looks like you sent the wrong patch. The added function are not called
> nor assigned to function pointers.
>
> Hmm, this is strange. I'm sure it was called when I decode a mpeg4 file.


> The function is not bit exact to the arm asm. fate-vsynth1-mpeg4 fails for
> example after fixing the setup.
>
> I will take a look on this. Thanks.

-James


> Janne
> _______________________________________________
> libav-devel mailing list
> [email protected] <javascript:;>
> https://lists.libav.org/mailman/listinfo/libav-devel
>


-- 
...Please excuse the terse message sent from my mobile...
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to