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
