ppc: avutil: Use the abriged vector types
This commit is contained in:
parent
254eb5b6fa
commit
72cebae0d9
@ -25,7 +25,7 @@ void ff_vector_fmul_altivec(float *dst, const float *src0, const float *src1,
|
|||||||
int len)
|
int len)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
vector float d0, d1, s, zero = (vector float)vec_splat_u32(0);
|
vec_f d0, d1, s, zero = (vec_f)vec_splat_u32(0);
|
||||||
for (i = 0; i < len - 7; i += 8) {
|
for (i = 0; i < len - 7; i += 8) {
|
||||||
d0 = vec_ld( 0, src0 + i);
|
d0 = vec_ld( 0, src0 + i);
|
||||||
s = vec_ld( 0, src1 + i);
|
s = vec_ld( 0, src1 + i);
|
||||||
@ -40,15 +40,15 @@ void ff_vector_fmul_altivec(float *dst, const float *src0, const float *src1,
|
|||||||
void ff_vector_fmul_window_altivec(float *dst, const float *src0,
|
void ff_vector_fmul_window_altivec(float *dst, const float *src0,
|
||||||
const float *src1, const float *win, int len)
|
const float *src1, const float *win, int len)
|
||||||
{
|
{
|
||||||
vector float zero, t0, t1, s0, s1, wi, wj;
|
vec_f zero, t0, t1, s0, s1, wi, wj;
|
||||||
const vector unsigned char reverse = vcprm(3, 2, 1, 0);
|
const vec_u8 reverse = vcprm(3, 2, 1, 0);
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
dst += len;
|
dst += len;
|
||||||
win += len;
|
win += len;
|
||||||
src0 += len;
|
src0 += len;
|
||||||
|
|
||||||
zero = (vector float)vec_splat_u32(0);
|
zero = (vec_f)vec_splat_u32(0);
|
||||||
|
|
||||||
for (i = -len * 4, j = len * 4 - 16; i < 0; i += 16, j -= 16) {
|
for (i = -len * 4, j = len * 4 - 16; i < 0; i += 16, j -= 16) {
|
||||||
s0 = vec_ld(i, src0);
|
s0 = vec_ld(i, src0);
|
||||||
@ -75,9 +75,9 @@ void ff_vector_fmul_add_altivec(float *dst, const float *src0,
|
|||||||
int len)
|
int len)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
vector float d, s0, s1, s2, t0, t1, edges;
|
vec_f d, s0, s1, s2, t0, t1, edges;
|
||||||
vector unsigned char align = vec_lvsr(0,dst),
|
vec_u8 align = vec_lvsr(0, dst);
|
||||||
mask = vec_lvsl(0, dst);
|
vec_u8 mask = vec_lvsl(0, dst);
|
||||||
|
|
||||||
for (i = 0; i < len - 3; i += 4) {
|
for (i = 0; i < len - 3; i += 4) {
|
||||||
t0 = vec_ld(0, dst + i);
|
t0 = vec_ld(0, dst + i);
|
||||||
@ -98,8 +98,8 @@ void ff_vector_fmul_reverse_altivec(float *dst, const float *src0,
|
|||||||
const float *src1, int len)
|
const float *src1, int len)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
vector float d, s0, s1, h0, l0,
|
vec_f d, s0, s1, h0, l0, s2, s3;
|
||||||
s2, s3, zero = (vector float) vec_splat_u32(0);
|
vec_f zero = (vec_f)vec_splat_u32(0);
|
||||||
|
|
||||||
src1 += len-4;
|
src1 += len-4;
|
||||||
for(i = 0; i < len - 7; i += 8) {
|
for(i = 0; i < len - 7; i += 8) {
|
||||||
|
@ -47,14 +47,14 @@
|
|||||||
#define WORD_s2 0x18,0x19,0x1a,0x1b
|
#define WORD_s2 0x18,0x19,0x1a,0x1b
|
||||||
#define WORD_s3 0x1c,0x1d,0x1e,0x1f
|
#define WORD_s3 0x1c,0x1d,0x1e,0x1f
|
||||||
|
|
||||||
#define vcprm(a,b,c,d) (const vector unsigned char){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d}
|
#define vcprm(a,b,c,d) (const vec_u8){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d}
|
||||||
|
|
||||||
|
|
||||||
// Transpose 8x8 matrix of 16-bit elements (in-place)
|
// Transpose 8x8 matrix of 16-bit elements (in-place)
|
||||||
#define TRANSPOSE8(a,b,c,d,e,f,g,h) \
|
#define TRANSPOSE8(a,b,c,d,e,f,g,h) \
|
||||||
do { \
|
do { \
|
||||||
vector signed short A1, B1, C1, D1, E1, F1, G1, H1; \
|
vec_s16 A1, B1, C1, D1, E1, F1, G1, H1; \
|
||||||
vector signed short A2, B2, C2, D2, E2, F2, G2, H2; \
|
vec_s16 A2, B2, C2, D2, E2, F2, G2, H2; \
|
||||||
\
|
\
|
||||||
A1 = vec_mergeh (a, e); \
|
A1 = vec_mergeh (a, e); \
|
||||||
B1 = vec_mergel (a, e); \
|
B1 = vec_mergel (a, e); \
|
||||||
@ -87,11 +87,11 @@ do { \
|
|||||||
|
|
||||||
/** @brief loads unaligned vector @a *src with offset @a offset
|
/** @brief loads unaligned vector @a *src with offset @a offset
|
||||||
and returns it */
|
and returns it */
|
||||||
static inline vector unsigned char unaligned_load(int offset, uint8_t *src)
|
static inline vec_u8 unaligned_load(int offset, uint8_t *src)
|
||||||
{
|
{
|
||||||
register vector unsigned char first = vec_ld(offset, src);
|
register vec_u8 first = vec_ld(offset, src);
|
||||||
register vector unsigned char second = vec_ld(offset+15, src);
|
register vec_u8 second = vec_ld(offset + 15, src);
|
||||||
register vector unsigned char mask = vec_lvsl(offset, src);
|
register vec_u8 mask = vec_lvsl(offset, src);
|
||||||
return vec_perm(first, second, mask);
|
return vec_perm(first, second, mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ static inline vector unsigned char unaligned_load(int offset, uint8_t *src)
|
|||||||
static inline vec_u8 load_with_perm_vec(int offset, uint8_t *src, vec_u8 perm_vec)
|
static inline vec_u8 load_with_perm_vec(int offset, uint8_t *src, vec_u8 perm_vec)
|
||||||
{
|
{
|
||||||
vec_u8 a = vec_ld(offset, src);
|
vec_u8 a = vec_ld(offset, src);
|
||||||
vec_u8 b = vec_ld(offset+15, src);
|
vec_u8 b = vec_ld(offset + 15, src);
|
||||||
return vec_perm(a, b, perm_vec);
|
return vec_perm(a, b, perm_vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user