{
int i;
int s __attribute__((aligned(16)));
- const vector unsigned char zero = (const vector unsigned char)vec_splat_u8(0);
+ const_vector unsigned char zero = (const_vector unsigned char)vec_splat_u8(0);
vector unsigned char *tv;
vector unsigned char pix1v, pix2v, pix2iv, avgv, t5;
vector unsigned int sad;
{
int i;
int s __attribute__((aligned(16)));
- const vector unsigned char zero = (const vector unsigned char)vec_splat_u8(0);
+ const_vector unsigned char zero = (const_vector unsigned char)vec_splat_u8(0);
vector unsigned char *tv;
vector unsigned char pix1v, pix2v, pix3v, avgv, t5;
vector unsigned int sad;
int i;
int s __attribute__((aligned(16)));
uint8_t *pix3 = pix2 + line_size;
- const vector unsigned char zero = (const vector unsigned char)vec_splat_u8(0);
- const vector unsigned short two = (const vector unsigned short)vec_splat_u16(2);
+ const_vector unsigned char zero = (const_vector unsigned char)vec_splat_u8(0);
+ const_vector unsigned short two = (const_vector unsigned short)vec_splat_u16(2);
vector unsigned char *tv, avgv, t5;
vector unsigned char pix1v, pix2v, pix3v, pix2iv, pix3iv;
vector unsigned short pix2lv, pix2hv, pix2ilv, pix2ihv;
{
int i;
int s __attribute__((aligned(16)));
- const vector unsigned int zero = (const vector unsigned int)vec_splat_u32(0);
+ const_vector unsigned int zero = (const_vector unsigned int)vec_splat_u32(0);
vector unsigned char perm1, perm2, *pix1v, *pix2v;
vector unsigned char t1, t2, t3,t4, t5;
vector unsigned int sad;
{
int i;
int s __attribute__((aligned(16)));
- const vector unsigned int zero = (const vector unsigned int)vec_splat_u32(0);
+ const_vector unsigned int zero = (const_vector unsigned int)vec_splat_u32(0);
vector unsigned char perm1, perm2, permclear, *pix1v, *pix2v;
vector unsigned char t1, t2, t3,t4, t5;
vector unsigned int sad;
{
int i;
int s __attribute__((aligned(16)));
- const vector unsigned int zero = (const vector unsigned int)vec_splat_u32(0);
+ const_vector unsigned int zero = (const_vector unsigned int)vec_splat_u32(0);
vector unsigned char *tv;
vector unsigned char pixv;
vector unsigned int sv;
{
int i;
int s __attribute__((aligned(16)));
- const vector unsigned int zero = (const vector unsigned int)vec_splat_u32(0);
+ const_vector unsigned int zero = (const_vector unsigned int)vec_splat_u32(0);
vector unsigned char perm1, perm2, permclear, *pix1v, *pix2v;
vector unsigned char t1, t2, t3,t4, t5;
vector unsigned int sum;
{
int i;
int s __attribute__((aligned(16)));
- const vector unsigned int zero = (const vector unsigned int)vec_splat_u32(0);
+ const_vector unsigned int zero = (const_vector unsigned int)vec_splat_u32(0);
vector unsigned char perm1, perm2, *pix1v, *pix2v;
vector unsigned char t1, t2, t3,t4, t5;
vector unsigned int sum;
int pix_sum_altivec(uint8_t * pix, int line_size)
{
- const vector unsigned int zero = (const vector unsigned int)vec_splat_u32(0);
+ const_vector unsigned int zero = (const_vector unsigned int)vec_splat_u32(0);
vector unsigned char perm, *pixv;
vector unsigned char t1;
vector unsigned int sad;
{
int i;
vector unsigned char perm, bytes, *pixv;
- const vector unsigned char zero = (const vector unsigned char)vec_splat_u8(0);
+ const_vector unsigned char zero = (const_vector unsigned char)vec_splat_u8(0);
vector signed short shorts;
for(i=0;i<8;i++)
{
int i;
vector unsigned char perm, bytes, *pixv;
- const vector unsigned char zero = (const vector unsigned char)vec_splat_u8(0);
+ const_vector unsigned char zero = (const_vector unsigned char)vec_splat_u8(0);
vector signed short shorts1, shorts2;
for(i=0;i<4;i++)
POWERPC_PERF_START_COUNT(altivec_put_pixels16_num, 1);
for(i=0; i<h; i++) {
- *((uint32_t*)(block )) = (((const struct unaligned_32 *) (pixels))->l);
- *((uint32_t*)(block+4)) = (((const struct unaligned_32 *) (pixels+4))->l);
- *((uint32_t*)(block+8)) = (((const struct unaligned_32 *) (pixels+8))->l);
- *((uint32_t*)(block+12)) = (((const struct unaligned_32 *) (pixels+12))->l);
+ *((uint32_t*)(block)) = LD32(pixels);
+ *((uint32_t*)(block+4)) = LD32(pixels+4);
+ *((uint32_t*)(block+8)) = LD32(pixels+8);
+ *((uint32_t*)(block+12)) = LD32(pixels+12);
pixels+=line_size;
block +=line_size;
}
POWERPC_PERF_START_COUNT(altivec_avg_pixels16_num, 1);
for(i=0; i<h; i++) {
- op_avg(*((uint32_t*)(block)),(((const struct unaligned_32 *)(pixels))->l));
- op_avg(*((uint32_t*)(block+4)),(((const struct unaligned_32 *)(pixels+4))->l));
- op_avg(*((uint32_t*)(block+8)),(((const struct unaligned_32 *)(pixels+8))->l));
- op_avg(*((uint32_t*)(block+12)),(((const struct unaligned_32 *)(pixels+12))->l));
+ op_avg(*((uint32_t*)(block)),LD32(pixels));
+ op_avg(*((uint32_t*)(block+4)),LD32(pixels+4));
+ op_avg(*((uint32_t*)(block+8)),LD32(pixels+8));
+ op_avg(*((uint32_t*)(block+12)),LD32(pixels+12));
pixels+=line_size;
block +=line_size;
}
blockv, temp1, temp2;
register vector unsigned short
pixelssum1, pixelssum2, temp3;
- register const vector unsigned char vczero = (const vector unsigned char)vec_splat_u8(0);
- register const vector unsigned short vctwo = (const vector unsigned short)vec_splat_u16(2);
+ register const_vector unsigned char vczero = (const_vector unsigned char)vec_splat_u8(0);
+ register const_vector unsigned short vctwo = (const_vector unsigned short)vec_splat_u16(2);
temp1 = vec_ld(0, pixels);
temp2 = vec_ld(16, pixels);
blockv, temp1, temp2;
register vector unsigned short
pixelssum1, pixelssum2, temp3;
- register const vector unsigned char vczero = (const vector unsigned char)vec_splat_u8(0);
- register const vector unsigned short vcone = (const vector unsigned short)vec_splat_u16(1);
- register const vector unsigned short vctwo = (const vector unsigned short)vec_splat_u16(2);
+ register const_vector unsigned char vczero = (const_vector unsigned char)vec_splat_u8(0);
+ register const_vector unsigned short vcone = (const_vector unsigned short)vec_splat_u16(1);
+ register const_vector unsigned short vctwo = (const_vector unsigned short)vec_splat_u16(2);
temp1 = vec_ld(0, pixels);
temp2 = vec_ld(16, pixels);
register vector unsigned short
pixelssum1, pixelssum2, temp3,
pixelssum3, pixelssum4, temp4;
- register const vector unsigned char vczero = (const vector unsigned char)vec_splat_u8(0);
- register const vector unsigned short vctwo = (const vector unsigned short)vec_splat_u16(2);
+ register const_vector unsigned char vczero = (const_vector unsigned char)vec_splat_u8(0);
+ register const_vector unsigned short vctwo = (const_vector unsigned short)vec_splat_u16(2);
POWERPC_PERF_START_COUNT(altivec_put_pixels16_xy2_num, 1);
register vector unsigned short
pixelssum1, pixelssum2, temp3,
pixelssum3, pixelssum4, temp4;
- register const vector unsigned char vczero = (const vector unsigned char)vec_splat_u8(0);
- register const vector unsigned short vcone = (const vector unsigned short)vec_splat_u16(1);
- register const vector unsigned short vctwo = (const vector unsigned short)vec_splat_u16(2);
+ register const_vector unsigned char vczero = (const_vector unsigned char)vec_splat_u8(0);
+ register const_vector unsigned short vcone = (const_vector unsigned short)vec_splat_u16(1);
+ register const_vector unsigned short vctwo = (const_vector unsigned short)vec_splat_u16(2);
POWERPC_PERF_START_COUNT(altivec_put_no_rnd_pixels16_xy2_num, 1);
int lastNonZero;
vector float row0, row1, row2, row3, row4, row5, row6, row7;
vector float alt0, alt1, alt2, alt3, alt4, alt5, alt6, alt7;
- const vector float zero = (const vector float)FOUROF(0.);
+ const_vector float zero = (const_vector float)FOUROF(0.);
+ // used after quantise step
+ int oldBaseValue = 0;
// Load the data into the row/alt vectors
{
}
}
- // used after quantise step
- int oldBaseValue = 0;
-
// perform the quantise step, using the floating point data
// still in the row/alt registers
{
data7 = vec_max(vec_min(data7, max_q), min_q);
}
+ {
vector bool char zero_01, zero_23, zero_45, zero_67;
vector signed char scanIndices_01, scanIndices_23, scanIndices_45, scanIndices_67;
vector signed char negOne = vec_splat_s8(-1);
vector signed char* scanPtr =
(vector signed char*)(s->intra_scantable.inverse);
+ signed char lastNonZeroChar;
// Determine the largest non-zero index.
- zero_01 = vec_pack(vec_cmpeq(data0, (vector short)zero),
- vec_cmpeq(data1, (vector short)zero));
- zero_23 = vec_pack(vec_cmpeq(data2, (vector short)zero),
- vec_cmpeq(data3, (vector short)zero));
- zero_45 = vec_pack(vec_cmpeq(data4, (vector short)zero),
- vec_cmpeq(data5, (vector short)zero));
- zero_67 = vec_pack(vec_cmpeq(data6, (vector short)zero),
- vec_cmpeq(data7, (vector short)zero));
+ zero_01 = vec_pack(vec_cmpeq(data0, (vector signed short)zero),
+ vec_cmpeq(data1, (vector signed short)zero));
+ zero_23 = vec_pack(vec_cmpeq(data2, (vector signed short)zero),
+ vec_cmpeq(data3, (vector signed short)zero));
+ zero_45 = vec_pack(vec_cmpeq(data4, (vector signed short)zero),
+ vec_cmpeq(data5, (vector signed short)zero));
+ zero_67 = vec_pack(vec_cmpeq(data6, (vector signed short)zero),
+ vec_cmpeq(data7, (vector signed short)zero));
// 64 biggest values
scanIndices_01 = vec_sel(scanPtr[0], negOne, zero_01);
scanIndices_01 = vec_splat(scanIndices_01, 0);
- signed char lastNonZeroChar;
vec_ste(scanIndices_01, 0, &lastNonZeroChar);
vec_st(data5, 80, data);
vec_st(data6, 96, data);
vec_st(data7, 112, data);
+ }
}
// special handling of block[0]
}
#else /* ALTIVEC_USE_REFERENCE_C_CODE */
{
- register const vector short vczero = (const vector short)vec_splat_s16(0);
+ register const_vector signed short vczero = (const_vector signed short)vec_splat_s16(0);
short __attribute__ ((aligned(16))) qmul8[] =
{
qmul, qmul, qmul, qmul,
-qadd, -qadd, -qadd, -qadd,
-qadd, -qadd, -qadd, -qadd
};
- register vector short blockv, qmulv, qaddv, nqaddv, temp1;
+ register vector signed short blockv, qmulv, qaddv, nqaddv, temp1;
register vector bool short blockv_null, blockv_neg;
register short backup_0 = block[0];
register int j = 0;