1 /* PR rtl-optimization/104459 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -funswitch-loops -fno-tree-dce -fcompare-debug -w" } */
4
5 void
6 foo (int x, int y)
7 {
8 unsigned int a;
9
10 for (;;)
11 {
12 short int *p = (short int *) &x;
13 unsigned int q = 0;
14
15 a /= 2;
16 if (a)
17 {
18 q -= y;
19 while (q)
20 ;
21 }
22
23 if (x)
24 {
25 for (q = 0; q != 1; q += 2)
26 {
27 unsigned int n;
28
29 n = *p ? 0 : q;
30 y += n < 1;
31
32 n = a || *p;
33 if (n % x == 0)
34 y /= x;
35 }
36 }
37 }
38 }