From 23a8c63452009df21b3f184936b343593d4ccb04 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sat, 8 Feb 2014 02:54:50 -0300 Subject: [PATCH] x86inc: Extend FMA_INSTR functionality Support the cases where the first and last operand of the XOP instruction are the same. Also add vpmacsdql emulation. Signed-off-by: James Almer Signed-off-by: Michael Niedermayer --- libavutil/x86/x86inc.asm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm index c455367e7f..88cae0cb48 100644 --- a/libavutil/x86/x86inc.asm +++ b/libavutil/x86/x86inc.asm @@ -1411,6 +1411,9 @@ AVX_INSTR pfmul, 1, 0, 1 %macro %1 4-7 %1, %2, %3 %if cpuflag(xop) v%5 %1, %2, %3, %4 + %elifidn %1, %4 + %6 %2, %3 + %7 %1, %2 %else %6 %1, %2, %3 %7 %1, %4 @@ -1420,6 +1423,7 @@ AVX_INSTR pfmul, 1, 0, 1 FMA_INSTR pmacsdd, pmulld, paddd FMA_INSTR pmacsww, pmullw, paddw +FMA_INSTR pmacsdql, pmuldq, paddq FMA_INSTR pmadcswd, pmaddwd, paddd ; tzcnt is equivalent to "rep bsf" and is backwards-compatible with bsf.