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