Mercurial > libavcodec.hg
comparison ppc/dsputil_altivec.h @ 3983:fec25fd9febf libavcodec
Move TRANSPOSE8 macro to dsputil_altivec.h.
(was duplicated in libavcodec/ppc/vc1dsp_altivec.c
nd libavcodec/ppc/mpegvideo_altivec.c, and will be
used in upcoming routines for h264_altivec.c)
author | gpoirier |
---|---|
date | Tue, 10 Oct 2006 08:01:19 +0000 |
parents | b28edd190fc0 |
children | ad0c45e0008c |
comparison
equal
deleted
inserted
replaced
3982:af16271634c2 | 3983:fec25fd9febf |
---|---|
65 #define vcii(a,b,c,d) (const vector float)(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d) | 65 #define vcii(a,b,c,d) (const vector float)(FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d) |
66 #else | 66 #else |
67 #define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d} | 67 #define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d} |
68 #endif | 68 #endif |
69 | 69 |
70 // Transpose 8x8 matrix of 16-bit elements (in-place) | |
71 #define TRANSPOSE8(a,b,c,d,e,f,g,h) \ | |
72 do { \ | |
73 vector signed short A1, B1, C1, D1, E1, F1, G1, H1; \ | |
74 vector signed short A2, B2, C2, D2, E2, F2, G2, H2; \ | |
75 \ | |
76 A1 = vec_mergeh (a, e); \ | |
77 B1 = vec_mergel (a, e); \ | |
78 C1 = vec_mergeh (b, f); \ | |
79 D1 = vec_mergel (b, f); \ | |
80 E1 = vec_mergeh (c, g); \ | |
81 F1 = vec_mergel (c, g); \ | |
82 G1 = vec_mergeh (d, h); \ | |
83 H1 = vec_mergel (d, h); \ | |
84 \ | |
85 A2 = vec_mergeh (A1, E1); \ | |
86 B2 = vec_mergel (A1, E1); \ | |
87 C2 = vec_mergeh (B1, F1); \ | |
88 D2 = vec_mergel (B1, F1); \ | |
89 E2 = vec_mergeh (C1, G1); \ | |
90 F2 = vec_mergel (C1, G1); \ | |
91 G2 = vec_mergeh (D1, H1); \ | |
92 H2 = vec_mergel (D1, H1); \ | |
93 \ | |
94 a = vec_mergeh (A2, E2); \ | |
95 b = vec_mergel (A2, E2); \ | |
96 c = vec_mergeh (B2, F2); \ | |
97 d = vec_mergel (B2, F2); \ | |
98 e = vec_mergeh (C2, G2); \ | |
99 f = vec_mergel (C2, G2); \ | |
100 g = vec_mergeh (D2, H2); \ | |
101 h = vec_mergel (D2, H2); \ | |
102 } while (0) | |
103 | |
70 #endif /* HAVE_ALTIVEC */ | 104 #endif /* HAVE_ALTIVEC */ |
71 | 105 |
72 #endif /* _DSPUTIL_ALTIVEC_ */ | 106 #endif /* _DSPUTIL_ALTIVEC_ */ |