From be22bd32fe433588f26aad40db971e0154d7f904 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sun, 7 Feb 2016 00:04:59 -0300 Subject: x86/cpu: set avxslow cpuflag on btver2 CPUs They are also slow when using 256 bit wide registers Reviewed-by: Hendrik Leppkes Signed-off-by: James Almer --- libavutil/x86/cpu.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'libavutil') diff --git a/libavutil/x86/cpu.c b/libavutil/x86/cpu.c index f57d72d0a7..bb63daac3d 100644 --- a/libavutil/x86/cpu.c +++ b/libavutil/x86/cpu.c @@ -182,13 +182,11 @@ int ff_get_cpu_flags_x86(void) /* Similar to the above but for AVX functions on AMD processors. This is necessary only for functions using YMM registers on Bulldozer - based CPUs as they lack 256-bits execution units. SSE/AVX functions - using XMM registers are always faster on them. + and Jaguar based CPUs as they lack 256-bits execution units. SSE/AVX + functions using XMM registers are always faster on them. AV_CPU_FLAG_AVX and AV_CPU_FLAG_AVXSLOW are both set so that AVX is - used unless explicitly disabled by checking AV_CPU_FLAG_AVXSLOW. - TODO: Confirm if Excavator is affected or not by this once it's - released, and update the check if necessary. Same for btver2. */ - if (family == 0x15 && (rval & AV_CPU_FLAG_AVX)) + used unless explicitly disabled by checking AV_CPU_FLAG_AVXSLOW. */ + if ((family == 0x15 || family == 0x16) && (rval & AV_CPU_FLAG_AVX)) rval |= AV_CPU_FLAG_AVXSLOW; } -- cgit v1.2.3