~rsandifo/+junk/loop-microbenchmarks

« back to all changes in this revision

Viewing changes to spec/libav/put-h264-qpel8-v-lowpass-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 300
 
3
arrays {
 
4
  uint8_t dst[COUNT * 32];
 
5
  uint8_t src[(COUNT + 5) * 32] : 2 * 32;
 
6
  uint8_t ff_cropTbl[256 + 2 * 1024];
 
7
}
 
8
inputs {
 
9
  int dstStride = 32;
 
10
  int srcStride = 32;
 
11
}
 
12
loop {
 
13
  const int w = COUNT;
 
14
  uint8_t *cm = ff_cropTbl + 1024;
 
15
  for(int i=0; i<w; i++)
 
16
    {
 
17
      const int srcB = src[-2*srcStride];
 
18
      const int srcA = src[-1*srcStride];
 
19
      const int src0 = src[0 *srcStride];
 
20
      const int src1 = src[1 *srcStride];
 
21
      const int src2 = src[2 *srcStride];
 
22
      const int src3 = src[3 *srcStride];
 
23
      const int src4 = src[4 *srcStride];
 
24
      const int src5 = src[5 *srcStride];
 
25
      const int src6 = src[6 *srcStride];
 
26
      const int src7 = src[7 *srcStride];
 
27
      const int src8 = src[8 *srcStride];
 
28
      const int src9 = src[9 *srcStride];
 
29
      const int src10 = src[10*srcStride];
 
30
 
 
31
      dst[0*dstStride] = cm[(((src0+src1)*20 - (srcA+src2)*5 + (srcB+src3)) + 16)>>5];
 
32
      dst[1*dstStride] = cm[(((src1+src2)*20 - (src0+src3)*5 + (srcA+src4)) + 16)>>5];
 
33
      dst[2*dstStride] = cm[(((src2+src3)*20 - (src1+src4)*5 + (src0+src5)) + 16)>>5];
 
34
      dst[3*dstStride] = cm[(((src3+src4)*20 - (src2+src5)*5 + (src1+src6)) + 16)>>5];
 
35
      dst[4*dstStride] = cm[(((src4+src5)*20 - (src3+src6)*5 + (src2+src7)) + 16)>>5];
 
36
      dst[5*dstStride] = cm[(((src5+src6)*20 - (src4+src7)*5 + (src3+src8)) + 16)>>5];
 
37
      dst[6*dstStride] = cm[(((src6+src7)*20 - (src5+src8)*5 + (src4+src9)) + 16)>>5];
 
38
      dst[7*dstStride] = cm[(((src7+src8)*20 - (src6+src9)*5 + (src5+src10)) + 16)>>5];
 
39
      dst++;
 
40
      src++;
 
41
    }
 
42
}