~rsandifo/+junk/loop-microbenchmarks

« back to all changes in this revision

Viewing changes to spec/libav/weight-h264-pixels16x16-8.txt

  • Committer: Richard Sandiford
  • Date: 2011-11-15 07:21:11 UTC
  • Revision ID: richard.sandiford@linaro.org-20111115072111-lhheqnmi8pe25d8g
[From Ira] Add weight-h264-pixels16x16-8.txt

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
count 16
 
2
repeat 120
 
3
arrays {
 
4
  uint8_t block[COUNT * 32];
 
5
}
 
6
inputs {
 
7
  int stride = 32;
 
8
  int log2_denom = 1;
 
9
  int weight = 2;
 
10
  int offset = 8;
 
11
}
 
12
decls {
 
13
  static inline uint8_t av_clip_uint8_c (int a)
 
14
  {
 
15
    if (a&(~0xFF))
 
16
      return (-a)>>31;
 
17
    else
 
18
      return a;
 
19
  }
 
20
}
 
21
loop {
 
22
  int y;
 
23
 
 
24
  stride /= sizeof(uint8_t);
 
25
  offset <<= (log2_denom + (8 -8));
 
26
  if(log2_denom) offset += 1<<(log2_denom-1);
 
27
 
 
28
  for(y=0; y<16; y++, block += stride)
 
29
   {
 
30
     block[0] = av_clip_uint8_c((block[0]*weight + offset) >> log2_denom);
 
31
     block[1] = av_clip_uint8_c((block[1]*weight + offset) >> log2_denom);
 
32
     block[2] = av_clip_uint8_c((block[2]*weight + offset) >> log2_denom);
 
33
     block[3] = av_clip_uint8_c((block[3]*weight + offset) >> log2_denom);
 
34
     block[4] = av_clip_uint8_c((block[4]*weight + offset) >> log2_denom);
 
35
     block[5] = av_clip_uint8_c((block[5]*weight + offset) >> log2_denom);
 
36
     block[6] = av_clip_uint8_c((block[6]*weight + offset) >> log2_denom);
 
37
     block[7] = av_clip_uint8_c((block[7]*weight + offset) >> log2_denom);
 
38
     block[8] = av_clip_uint8_c((block[8]*weight + offset) >> log2_denom);
 
39
     block[9] = av_clip_uint8_c((block[9]*weight + offset) >> log2_denom);
 
40
     block[10] = av_clip_uint8_c((block[10]*weight + offset) >> log2_denom);
 
41
     block[11] = av_clip_uint8_c((block[11]*weight + offset) >> log2_denom);
 
42
     block[12] = av_clip_uint8_c((block[12]*weight + offset) >> log2_denom);
 
43
     block[13] = av_clip_uint8_c((block[13]*weight + offset) >> log2_denom);
 
44
     block[14] = av_clip_uint8_c((block[14]*weight + offset) >> log2_denom);
 
45
     block[15] = av_clip_uint8_c((block[15]*weight + offset) >> log2_denom);
 
46
   }
 
47
}