[libav-devel] [PATCH 3/3 v2] x86/synth_filter: add synth_filter_fma3

James Almer jamrial at gmail.com
Mon Mar 24 19:18:32 CET 2014


On 24/03/14 3:07 PM, Diego Biurrun wrote:
> On Mon, Mar 24, 2014 at 02:59:08PM -0300, James Almer wrote:
>> On 24/03/14 11:28 AM, Diego Biurrun wrote:
>>> On Thu, Mar 20, 2014 at 03:37:56PM -0300, James Almer wrote:
>>>> --- a/libavcodec/x86/dcadsp.asm
>>>> +++ b/libavcodec/x86/dcadsp.asm
>>>> @@ -230,6 +230,14 @@ DCA_LFE_FIR 1
>>>>      mova         m12, [ptr1 + j + mmsize]
>>>>  %endif
>>>> +%if cpuflag(fma3)
>>>> +    fmaddps       m2, m6,  [win + %1 + j + 16 * 4], m2
>>>> +    fnmaddps      m1, m5,  [win + %1 + j], m1
>>>> +%if ARCH_X86_64
>>>> +    fmaddps       m8, m12, [win + %1 + j + mmsize + 16 * 4], m8
>>>> +    fnmaddps      m7, m11, [win + %1 + j + mmsize], m7
>>>> +%endif
>>>> +%else ; non-FMA
>>>
>>> Doesn't FMA3 imply x86_64?
>>
>> No, no simd extension so far implies x86_64. Not even the upcoming AVX512.
> 
> But which modern x86 SIMD extensions are available on x86_32?
> 
> Diego

All of them so far work on both x86_32 and x86_64, with the usual limitations 
for the former (8 general purpose registers and 8 simd registers).
As i said, even AVX512, which hasn't been realized in hardware yet, will also 
be available for x86_32.


More information about the libav-devel mailing list