>> +static const vector int16_t trans4[4] = {
>> +    { 64,  64, 64,  64, 64,  64, 64,  64 },
>> +    { 83,  36, 83,  36, 83,  36, 83,  36 },
>> +    { 64, -64, 64, -64, 64, -64, 64, -64 },
>> +    { 36, -83, 36, -83, 36, -83, 36, -83 },
>> +};
>
> This fits in int8_t, is there a reason to have it int16_t?

the reason is I need to multiply the vectors of the same type
>
>> +static const vec_u8 mask[2] = {
>> +    { 0x00, 0x01, 0x08, 0x09, 0x10, 0x11, 0x18, 0x19, 0x02, 0x03, 0x0A, 
>> 0x0B, 0x12, 0x13, 0x1A, 0x1B },
>> +    { 0x04, 0x05, 0x0C, 0x0D, 0x14, 0x15, 0x1C, 0x1D, 0x06, 0x07, 0x0E, 
>> 0x0F, 0x16, 0x17, 0x1E, 0x1F },
>> +};
>
> Where do these tables come from? I would expect them to be shared
> across arches.

This is permutation mask used by vec_perm and it's specific for this
case (which is matrix tranposition).

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

Reply via email to