111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -fdump-tree-vrp2" } */
|
|
3
|
|
4 extern int nc;
|
|
5 void ff (unsigned long long);
|
|
6
|
|
7 void
|
|
8 f (void)
|
|
9 {
|
|
10 unsigned char resp[1024];
|
|
11 int c;
|
|
12 int bl = 0;
|
|
13 unsigned long long *dwords = (unsigned long long *) (resp + 5);
|
|
14 for (c = 0; c < nc; c++)
|
|
15 {
|
|
16 /* PR middle-end/68234, this signed division should be optimized into
|
|
17 right shift as vrp pass should deduct range info of 'bl' falls into
|
|
18 positive number. */
|
|
19 ff (dwords[bl / 64]);
|
|
20 bl++;
|
|
21 }
|
|
22 }
|
|
23
|
|
24 /* { dg-final { scan-tree-dump ">> 6" "vrp2" } } */
|