modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/lll.c (about)

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