aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr66856-2.c
blob: 50890853db9ff2c8435129420a0679dcb9447706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* { dg-do compile } */

typedef int uint32_t;
int c, e, f, g, h;
short *d;
uint32_t fn1(uint32_t p1, uint32_t p2)
{
  uint32_t a, b;
  a = p1 >> 3 & p2;
  b = p1 & 072;
  a |= a >> 5;
  a |= b >> 5;
  return a;
}

void fn2()
{
  uint32_t *i;
  uint32_t j;
  while (c -= 4) {
      fn1(e, j);
      fn1(f, j) * fn1(g, j) * fn1(h, j);
      *d++ = fn1(*i++, j);
      *d++ = fn1(*i++, j);
  }
}