fixed be_Return gen
[libfirm] / ir / be / test / simd1.c
1 #include <stdio.h>
2
3 unsigned int sse8_16bit_c(      const short * b1,
4                                 const short * b2,
5                                 const unsigned int stride)
6 {
7         int i;
8         int sse = 0;
9
10         for (i=0; i<8; i++) {
11                 sse += (b1[0] - b2[0])*(b1[0] - b2[0]);
12                 sse += (b1[1] - b2[1])*(b1[1] - b2[1]);
13                 sse += (b1[2] - b2[2])*(b1[2] - b2[2]);
14                 sse += (b1[3] - b2[3])*(b1[3] - b2[3]);
15                 sse += (b1[4] - b2[4])*(b1[4] - b2[4]);
16                 sse += (b1[5] - b2[5])*(b1[5] - b2[5]);
17                 sse += (b1[6] - b2[6])*(b1[6] - b2[6]);
18                 sse += (b1[7] - b2[7])*(b1[7] - b2[7]);
19
20                 b1 = (const short*)((char*)b1+stride);
21                 b2 = (const short*)((char*)b2+stride);
22         }
23
24         return(sse);
25 }
26
27 //#define MAX 65536
28 #define MAX 32
29
30 int main(){
31   short cur[MAX];
32   short ref[MAX];
33   int sum = 0;
34   int numofruns = 10;
35   int i,ii;
36   for (i=0;i < numofruns; i++){
37     // Reset cache. Alles andere ist unrealistisch.
38     for(ii = 0; ii<MAX;ii++){
39       cur[ii]=(ii)&0xff;
40       ref[ii]=(ii+i+3)&0xff;
41     }
42     sum = sse8_16bit_c(cur, ref, 16);
43     printf("sum[%i] = %i\n",i, sum);
44   }
45   return 0 ;
46 }