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
f(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" } } */
25