1 /* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
2
byte_match_count2(buf,n,xm,m1,m2,m3,m4)3 byte_match_count2 (buf, n, xm, m1, m2, m3, m4)
4 unsigned *buf;
5 unsigned n;
6 unsigned xm;
7 unsigned m1, m2, m3, m4;
8 {
9 unsigned w, cnt = 0;
10 unsigned *bp;
11
12 n /= 4;
13
14 bp = buf;
15 while (bp < buf + n)
16 {
17 w = *bp++;
18 w ^= xm;
19 cnt += ((m1 & w) == 0);
20 cnt += ((m2 & w) == 0);
21 cnt += ((m3 & w) == 0);
22 cnt += ((m4 & w) == 0);
23
24 w = *bp++;
25 w ^= xm;
26 cnt += ((m1 & w) == 0);
27 cnt += ((m2 & w) == 0);
28 cnt += ((m3 & w) == 0);
29 cnt += ((m4 & w) == 0);
30
31 w = *bp++;
32 w ^= xm;
33 cnt += ((m1 & w) == 0);
34 cnt += ((m2 & w) == 0);
35 cnt += ((m3 & w) == 0);
36 cnt += ((m4 & w) == 0);
37
38 w = *bp++;
39 w ^= xm;
40 cnt += ((m1 & w) == 0);
41 cnt += ((m2 & w) == 0);
42 cnt += ((m3 & w) == 0);
43 cnt += ((m4 & w) == 0);
44 }
45 return cnt;
46 }
47