On Thu, Apr 23, 2020 at 08:13:18PM -0700, Nelson Gomez wrote: > From: Nelson Gomez <nelson.go...@microsoft.com> > > 256 bits is just wide enough to fit all the operands needed to vectorize > the software implementation, but AVX2 is needed to for some instructions > like 16-to-32 bit vector sign extension. > > Output is bit-for-bit identical to C. > > Signed-off-by: Nelson Gomez <nelson.go...@microsoft.com> > --- > libswscale/x86/output.asm | 140 +++++++++++++++++++++++++++++++++++++- > libswscale/x86/swscale.c | 24 +++++++ > 2 files changed, 163 insertions(+), 1 deletion(-)
Fails to build on x86_32 X86ASM libswscale/x86/output.o src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:497: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:498: ... from macro `yuv2nv12cX_avx2_fn' defined here src//libavutil/x86/x86inc.asm:1381: ... from macro `movd' defined here src//libavutil/x86/x86inc.asm:1249: ... from macro `RUN_AVX_INSTR' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:517: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:518: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:551: ... from macro `yuv2nv12cX_avx2_fn' defined here src//libavutil/x86/x86inc.asm:1125: ... from macro `add' defined here src/libswscale/x86/output.asm:562: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:554: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:474: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:497: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:498: ... from macro `yuv2nv12cX_avx2_fn' defined here src//libavutil/x86/x86inc.asm:1381: ... from macro `movd' defined here src//libavutil/x86/x86inc.asm:1249: ... from macro `RUN_AVX_INSTR' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:517: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:518: ... from macro `yuv2nv12cX_avx2_fn' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:551: ... from macro `yuv2nv12cX_avx2_fn' defined here src//libavutil/x86/x86inc.asm:1125: ... from macro `add' defined here src/libswscale/x86/output.asm:563: error: invalid operands in non-64-bit mode src/libswscale/x86/output.asm:554: ... from macro `yuv2nv12cX_avx2_fn' defined here src/ffbuild/common.mak:81: recipe for target 'libswscale/x86/output.o' failed make: *** [libswscale/x86/output.o] Error 1 [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Republics decline into democracies and democracies degenerate into despotisms. -- Aristotle
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".