Hi,

On Thu, Jan 17, 2013 at 3:29 PM, Vitor Sessak <vitor1...@gmail.com> wrote:
> On Wed, Jan 16, 2013 at 1:58 AM, Ronald S. Bultje <rsbul...@gmail.com> wrote:
>> +INIT_XMM sse
>> +cglobal vorbis_inverse_coupling, 3, 3, 6, mag, ang, block_size
>> +    movsxdifnidn    block_sizeq, block_sized
>> +    mova                     m5, [pdw_80000000]
>> +    lea                    magq, [magq+block_sizeq*4]
>> +    lea                    angq, [angq+block_sizeq*4]
>> +    neg             block_sizeq
>> +.loop:
>> +    mova                     m0, [magq+block_sizeq*4]
>> +    mova                     m1, [angq+block_sizeq*4]
>> +    xorps                    m2, m2
>> +    xorps                    m3, m3
>> +    cmpleps                  m2, m0     ; m <= 0.0
>> +    cmpleps                  m3, m1     ; a <= 0.0
>> +    andps                    m2, m5     ; keep only the sign bit
>
> Am I missing something or we can just do:
>
> andps m2, m0, m5
>
> Instead of the xorps + cmpleps + andps?

I just tried that, but it doesn't pass fate. I'm not really that great
at floating-point numbers so I'm not sure if that's expected or not...
I like the idea though...

Ronald
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to