[vlc-devel] commit: NEON vectorized fi32->s16l audio filter ( Rémi Denis-Courmont )

Måns Rullgård mans at mansr.com
Sun Sep 6 18:46:22 CEST 2009


"Rémi Denis-Courmont" <remi at remlab.net> writes:

> Le dimanche 6 septembre 2009 13:55:48 git version control, vous avez écrit :
>> +    while (nb_samples & 3)
>> +    {
>> +        const int16_t roundup = 1 << 12;
>> +        asm volatile (
>> +            "qadd r0, %[inv], %[roundup]\n"
>> +            "ssat %[outv], #16, r0, asr #13\n"
>> +            : [outv] "=r" (*outp)
>> +            : [inv] "r" (*inp), [roundup] "r" (roundup)
>> +            : "r0");
>> +        inp++;
>> +        outp++;
>> +        nb_samples--;
>> +    }
>
> If anyone cares, remove "& 3" and and you have an optimized fi32->s16l 
> conversion for (non-M) ARMv6 and ARMv7.

On such CPUs, this would benefit greatly from a little unrolling since
that instruction sequence will stall for two cycles.

-- 
Måns Rullgård
mans at mansr.com




More information about the vlc-devel mailing list