On 2014-05-13 23:25:12 +0800, [email protected] wrote:
> From: James Yu <[email protected]>
> 
> 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.

> 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

> [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

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]>
> ---
>  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.

The function is not bit exact to the arm asm. fate-vsynth1-mpeg4 fails for 
example after fixing the setup.

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

Reply via email to