~rsandifo/+junk/loop-microbenchmarks

« back to all changes in this revision

Viewing changes to spec/libav/avg-h264-chroma-mc8-8.txt

  • Committer: Richard Sandiford
  • Date: 2011-09-09 13:32:25 UTC
  • Revision ID: richard.sandiford@linaro.org-20110909133225-zfvh9y7cujuro09q
Add more loops.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
count 8
 
2
repeat 200
 
3
arrays {
 
4
  uint8_t src[COUNT * 32 + 9];
 
5
  uint8_t dst[COUNT * 32];
 
6
}
 
7
inputs {
 
8
  int stride = 32;
 
9
  int h = COUNT;
 
10
  int x = 3;
 
11
  int y = 6;
 
12
}
 
13
loop {
 
14
  const int A = (8-x)*(8-y);
 
15
  const int B = x*(8-y);
 
16
  const int C = (8-x)*y;
 
17
  const int D = x*y;
 
18
  if (D)
 
19
    for (int i=0; i<h; i++)
 
20
      {
 
21
        dst[0] = (((dst[0])+((((A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1])) + 32)>>6)+1)>>1);
 
22
        dst[1] = (((dst[1])+((((A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2])) + 32)>>6)+1)>>1);
 
23
        dst[2] = (((dst[2])+((((A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3])) + 32)>>6)+1)>>1);
 
24
        dst[3] = (((dst[3])+((((A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4])) + 32)>>6)+1)>>1);
 
25
        dst[4] = (((dst[4])+((((A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5])) + 32)>>6)+1)>>1);
 
26
        dst[5] = (((dst[5])+((((A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6])) + 32)>>6)+1)>>1);
 
27
        dst[6] = (((dst[6])+((((A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7])) + 32)>>6)+1)>>1);
 
28
        dst[7] = (((dst[7])+((((A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8])) + 32)>>6)+1)>>1);
 
29
        dst += stride;
 
30
        src += stride;
 
31
      }
 
32
  else
 
33
    {
 
34
      const int E = B+C;
 
35
      const int step = C ? stride : 1;
 
36
      for (int i=0; i<h; i++)
 
37
        {
 
38
          dst[0] = (((dst[0])+((((A*src[0] + E*src[step+0])) + 32)>>6)+1)>>1);
 
39
          dst[1] = (((dst[1])+((((A*src[1] + E*src[step+1])) + 32)>>6)+1)>>1);
 
40
          dst[2] = (((dst[2])+((((A*src[2] + E*src[step+2])) + 32)>>6)+1)>>1);
 
41
          dst[3] = (((dst[3])+((((A*src[3] + E*src[step+3])) + 32)>>6)+1)>>1);
 
42
          dst[4] = (((dst[4])+((((A*src[4] + E*src[step+4])) + 32)>>6)+1)>>1);
 
43
          dst[5] = (((dst[5])+((((A*src[5] + E*src[step+5])) + 32)>>6)+1)>>1);
 
44
          dst[6] = (((dst[6])+((((A*src[6] + E*src[step+6])) + 32)>>6)+1)>>1);
 
45
          dst[7] = (((dst[7])+((((A*src[7] + E*src[step+7])) + 32)>>6)+1)>>1);
 
46
          dst += stride;
 
47
          src += stride;
 
48
        }
 
49
    }
 
50
}