|
|
|
@ -43,11 +43,8 @@ |
|
|
|
|
#define WORD_s2 0x18,0x19,0x1a,0x1b |
|
|
|
|
#define WORD_s3 0x1c,0x1d,0x1e,0x1f |
|
|
|
|
|
|
|
|
|
#ifdef __APPLE_CC__ |
|
|
|
|
#define vcprm(a,b,c,d) (const vector unsigned char)(WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d) |
|
|
|
|
#else |
|
|
|
|
#define vcprm(a,b,c,d) (const vector unsigned char){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d} |
|
|
|
|
#endif |
|
|
|
|
#define vcprm(a,b,c,d) (const vector unsigned char)AVV(WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d) |
|
|
|
|
#define vcii(a,b,c,d) (const vector float)AVV(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d) |
|
|
|
|
|
|
|
|
|
// vcprmle is used to keep the same index as in the SSE version.
|
|
|
|
|
// it's the same as vcprm, with the index inversed
|
|
|
|
@ -60,12 +57,6 @@ |
|
|
|
|
#define FLOAT_p 1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __APPLE_CC__ |
|
|
|
|
#define vcii(a,b,c,d) (const vector float)(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d) |
|
|
|
|
#else |
|
|
|
|
#define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// Transpose 8x8 matrix of 16-bit elements (in-place)
|
|
|
|
|
#define TRANSPOSE8(a,b,c,d,e,f,g,h) \ |
|
|
|
|
do { \
|
|
|
|
|