From: Eric Petit Date: Sat, 29 Apr 2006 11:12:16 +0000 (+0000) Subject: More vector types fixes for gcc 3.3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e7141289a2f8d07168d19fc751bb302a9c32a79e;p=libx264 More vector types fixes for gcc 3.3 git-svn-id: svn://svn.videolan.org/x264/trunk@514 df754926-b1dd-0310-bc7b-ec298dee348c --- diff --git a/common/ppc/pixel.c b/common/ppc/pixel.c index 7bc61f6d..eb6daaac 100644 --- a/common/ppc/pixel.c +++ b/common/ppc/pixel.c @@ -616,12 +616,12 @@ static void pixel_sad_x4_16x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *p //vec_u8_t perm0v, perm1v, perm2v, perm3v; vec_u8_t perm0vA, perm1vA, perm2vA, perm3vA, perm0vB, perm1vB, perm2vB, perm3vB; - vec_u32_t sum0v, sum1v, sum2v, sum3v; + vec_s32_t sum0v, sum1v, sum2v, sum3v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); - sum3v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); + sum3v = vec_splat_s32(0); perm0vA = vec_lvsl(0, pix0); perm1vA = vec_lvsl(0, pix1); @@ -703,20 +703,20 @@ static void pixel_sad_x4_16x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *p } - sum0v = (vec_u32_t) vec_sums( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sums( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sums( (vec_s32_t) sum2v, zero_s32v ); - sum3v = (vec_u32_t) vec_sums( (vec_s32_t) sum3v, zero_s32v ); + sum0v = vec_sums( sum0v, zero_s32v ); + sum1v = vec_sums( sum1v, zero_s32v ); + sum2v = vec_sums( sum2v, zero_s32v ); + sum3v = vec_sums( sum3v, zero_s32v ); sum0v = vec_splat( sum0v, 3 ); sum1v = vec_splat( sum1v, 3 ); sum2v = vec_splat( sum2v, 3 ); sum3v = vec_splat( sum3v, 3 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); - vec_ste( (vec_s32_t) sum3v, 0, &sum3); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); + vec_ste( sum3v, 0, &sum3); scores[0] = sum0; scores[1] = sum1; @@ -740,11 +740,11 @@ static void pixel_sad_x3_16x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *p vec_u8_t fencv, pix0v, pix1v, pix2v; vec_u8_t perm0vA, perm1vA, perm2vA, perm0vB, perm1vB, perm2vB; - vec_u32_t sum0v, sum1v, sum2v; + vec_s32_t sum0v, sum1v, sum2v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); perm0vA = vec_lvsl(0, pix0); perm1vA = vec_lvsl(0, pix1); @@ -812,17 +812,17 @@ static void pixel_sad_x3_16x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *p } - sum0v = (vec_u32_t) vec_sums( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sums( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sums( (vec_s32_t) sum2v, zero_s32v ); + sum0v = vec_sums( sum0v, zero_s32v ); + sum1v = vec_sums( sum1v, zero_s32v ); + sum2v = vec_sums( sum2v, zero_s32v ); sum0v = vec_splat( sum0v, 3 ); sum1v = vec_splat( sum1v, 3 ); sum2v = vec_splat( sum2v, 3 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); scores[0] = sum0; scores[1] = sum1; @@ -843,12 +843,12 @@ static void pixel_sad_x4_16x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi vec_u8_t fencv, pix0v, pix1v, pix2v, pix3v; vec_u8_t perm0vA, perm1vA, perm2vA, perm3vA, perm0vB, perm1vB, perm2vB, perm3vB; - vec_u32_t sum0v, sum1v, sum2v, sum3v; + vec_s32_t sum0v, sum1v, sum2v, sum3v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); - sum3v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); + sum3v = vec_splat_s32(0); perm0vA = vec_lvsl(0, pix0); perm1vA = vec_lvsl(0, pix1); @@ -931,20 +931,20 @@ static void pixel_sad_x4_16x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi } - sum0v = (vec_u32_t) vec_sums( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sums( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sums( (vec_s32_t) sum2v, zero_s32v ); - sum3v = (vec_u32_t) vec_sums( (vec_s32_t) sum3v, zero_s32v ); + sum0v = vec_sums( sum0v, zero_s32v ); + sum1v = vec_sums( sum1v, zero_s32v ); + sum2v = vec_sums( sum2v, zero_s32v ); + sum3v = vec_sums( sum3v, zero_s32v ); sum0v = vec_splat( sum0v, 3 ); sum1v = vec_splat( sum1v, 3 ); sum2v = vec_splat( sum2v, 3 ); sum3v = vec_splat( sum3v, 3 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); - vec_ste( (vec_s32_t) sum3v, 0, &sum3); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); + vec_ste( sum3v, 0, &sum3); scores[0] = sum0; scores[1] = sum1; @@ -968,11 +968,11 @@ static void pixel_sad_x3_16x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi vec_u8_t fencv, pix0v, pix1v, pix2v; vec_u8_t perm0vA, perm1vA, perm2vA, perm0vB, perm1vB, perm2vB; - vec_u32_t sum0v, sum1v, sum2v; + vec_s32_t sum0v, sum1v, sum2v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); perm0vA = vec_lvsl(0, pix0); @@ -1040,17 +1040,17 @@ static void pixel_sad_x3_16x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi } - sum0v = (vec_u32_t) vec_sums( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sums( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sums( (vec_s32_t) sum2v, zero_s32v ); + sum0v = vec_sums( sum0v, zero_s32v ); + sum1v = vec_sums( sum1v, zero_s32v ); + sum2v = vec_sums( sum2v, zero_s32v ); sum0v = vec_splat( sum0v, 3 ); sum1v = vec_splat( sum1v, 3 ); sum2v = vec_splat( sum2v, 3 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); scores[0] = sum0; scores[1] = sum1; @@ -1072,12 +1072,12 @@ static void pixel_sad_x4_8x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi vec_u8_t fencv, pix0v, pix1v, pix2v, pix3v; vec_u8_t perm0vA, perm1vA, perm2vA, perm3vA, perm0vB, perm1vB, perm2vB, perm3vB, permEncv; - vec_u32_t sum0v, sum1v, sum2v, sum3v; + vec_s32_t sum0v, sum1v, sum2v, sum3v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); - sum3v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); + sum3v = vec_splat_s32(0); permEncv = vec_lvsl(0, fenc); perm0vA = vec_lvsl(0, pix0); @@ -1160,20 +1160,20 @@ static void pixel_sad_x4_8x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi sum3v = (vec_s32_t) vec_sum4s( vec_sub( vec_max( fencv, pix3v ), vec_min( fencv, pix3v ) ), (vec_u32_t) sum3v ); } - sum0v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum2v, zero_s32v ); - sum3v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum3v, zero_s32v ); + sum0v = vec_sum2s( sum0v, zero_s32v ); + sum1v = vec_sum2s( sum1v, zero_s32v ); + sum2v = vec_sum2s( sum2v, zero_s32v ); + sum3v = vec_sum2s( sum3v, zero_s32v ); sum0v = vec_splat( sum0v, 1 ); sum1v = vec_splat( sum1v, 1 ); sum2v = vec_splat( sum2v, 1 ); sum3v = vec_splat( sum3v, 1 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); - vec_ste( (vec_s32_t) sum3v, 0, &sum3); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); + vec_ste( sum3v, 0, &sum3); scores[0] = sum0; scores[1] = sum1; @@ -1194,11 +1194,11 @@ static void pixel_sad_x3_8x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi vec_u8_t fencv, pix0v, pix1v, pix2v; vec_u8_t perm0vA, perm1vA, perm2vA, perm0vB, perm1vB, perm2vB,permEncv; - vec_u32_t sum0v, sum1v, sum2v; + vec_s32_t sum0v, sum1v, sum2v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); permEncv = vec_lvsl(0, fenc); perm0vA = vec_lvsl(0, pix0); @@ -1269,17 +1269,17 @@ static void pixel_sad_x3_8x16_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pi } - sum0v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum2v, zero_s32v ); + sum0v = vec_sum2s( sum0v, zero_s32v ); + sum1v = vec_sum2s( sum1v, zero_s32v ); + sum2v = vec_sum2s( sum2v, zero_s32v ); sum0v = vec_splat( sum0v, 1 ); sum1v = vec_splat( sum1v, 1 ); sum2v = vec_splat( sum2v, 1 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); scores[0] = sum0; scores[1] = sum1; @@ -1300,12 +1300,12 @@ static void pixel_sad_x4_8x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pix vec_u8_t fencv, pix0v, pix1v, pix2v, pix3v; vec_u8_t perm0vA, perm1vA, perm2vA, perm3vA, perm0vB, perm1vB, perm2vB, perm3vB, permEncv; - vec_u32_t sum0v, sum1v, sum2v, sum3v; + vec_s32_t sum0v, sum1v, sum2v, sum3v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); - sum3v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); + sum3v = vec_splat_s32(0); permEncv = vec_lvsl(0, fenc); perm0vA = vec_lvsl(0, pix0); @@ -1389,20 +1389,20 @@ static void pixel_sad_x4_8x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pix } - sum0v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum2v, zero_s32v ); - sum3v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum3v, zero_s32v ); + sum0v = vec_sum2s( sum0v, zero_s32v ); + sum1v = vec_sum2s( sum1v, zero_s32v ); + sum2v = vec_sum2s( sum2v, zero_s32v ); + sum3v = vec_sum2s( sum3v, zero_s32v ); sum0v = vec_splat( sum0v, 1 ); sum1v = vec_splat( sum1v, 1 ); sum2v = vec_splat( sum2v, 1 ); sum3v = vec_splat( sum3v, 1 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); - vec_ste( (vec_s32_t) sum3v, 0, &sum3); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); + vec_ste( sum3v, 0, &sum3); scores[0] = sum0; scores[1] = sum1; @@ -1424,11 +1424,11 @@ static void pixel_sad_x3_8x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pix vec_u8_t fencv, pix0v, pix1v, pix2v; vec_u8_t perm0vA, perm1vA, perm2vA, perm0vB, perm1vB, perm2vB, permEncv; - vec_u32_t sum0v, sum1v, sum2v; + vec_s32_t sum0v, sum1v, sum2v; - sum0v = vec_splat_u32(0); - sum1v = vec_splat_u32(0); - sum2v = vec_splat_u32(0); + sum0v = vec_splat_s32(0); + sum1v = vec_splat_s32(0); + sum2v = vec_splat_s32(0); permEncv = vec_lvsl(0, fenc); perm0vA = vec_lvsl(0, pix0); @@ -1499,17 +1499,17 @@ static void pixel_sad_x3_8x8_altivec( uint8_t *fenc, uint8_t *pix0, uint8_t *pix } - sum0v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum0v, zero_s32v ); - sum1v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum1v, zero_s32v ); - sum2v = (vec_u32_t) vec_sum2s( (vec_s32_t) sum2v, zero_s32v ); + sum0v = vec_sum2s( sum0v, zero_s32v ); + sum1v = vec_sum2s( sum1v, zero_s32v ); + sum2v = vec_sum2s( sum2v, zero_s32v ); sum0v = vec_splat( sum0v, 1 ); sum1v = vec_splat( sum1v, 1 ); sum2v = vec_splat( sum2v, 1 ); - vec_ste( (vec_s32_t) sum0v, 0, &sum0); - vec_ste( (vec_s32_t) sum1v, 0, &sum1); - vec_ste( (vec_s32_t) sum2v, 0, &sum2); + vec_ste( sum0v, 0, &sum0); + vec_ste( sum1v, 0, &sum1); + vec_ste( sum2v, 0, &sum2); scores[0] = sum0; scores[1] = sum1; @@ -1598,7 +1598,7 @@ static int pixel_ssd_16x16_altivec ( uint8_t *pix1, int i_stride_pix1, diffB = vec_sub(maxB, minB); sumv = vec_msum(diffB, diffB, sumv); - sumv = vec_sums((vec_s32_t) sumv, zero_s32v); + sumv = (vec_u32_t) vec_sums((vec_s32_t) sumv, zero_s32v); sumv = vec_splat(sumv, 3); vec_ste((vec_s32_t) sumv, 0, &sum); return sum;