>> +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