| /* PR rtl-optimization/104459 */ | |
| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -funswitch-loops -fno-tree-dce -fcompare-debug -w" } */ | |
| void | |
| foo (int x, int y) | |
| { | |
| unsigned int a; | |
| for (;;) | |
| { | |
| short int *p = (short int *) &x; | |
| unsigned int q = 0; | |
| a /= 2; | |
| if (a) | |
| { | |
| q -= y; | |
| while (q) | |
| ; | |
| } | |
| if (x) | |
| { | |
| for (q = 0; q != 1; q += 2) | |
| { | |
| unsigned int n; | |
| n = *p ? 0 : q; | |
| y += n < 1; | |
| n = a || *p; | |
| if (n % x == 0) | |
| y /= x; | |
| } | |
| } | |
| } | |
| } |