]> granicus.if.org Git - libx264/commitdiff
More vector types fixes for gcc 3.3
authorEric Petit <titer@videolan.org>
Sat, 29 Apr 2006 11:12:16 +0000 (11:12 +0000)
committerEric Petit <titer@videolan.org>
Sat, 29 Apr 2006 11:12:16 +0000 (11:12 +0000)
git-svn-id: svn://svn.videolan.org/x264/trunk@514 df754926-b1dd-0310-bc7b-ec298dee348c

common/ppc/pixel.c

index 7bc61f6d9f7bda6d8f1680d0347b70ed4b5c3122..eb6daaacd0d8f147a1e8af89c56daa474e214c00 100644 (file)
@@ -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;