| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -fdump-tree-vrp2" } */ | |
| extern int nc; | |
| void ff (unsigned long long); | |
| void | |
| f (void) | |
| { | |
| unsigned char resp[1024]; | |
| int c; | |
| int bl = 0; | |
| unsigned long long *dwords = (unsigned long long *) (resp + 5); | |
| for (c = 0; c < nc; c++) | |
| { | |
| /* PR middle-end/68234, this signed division should be optimized into | |
| right shift as vrp pass should deduct range info of 'bl' falls into | |
| positive number. */ | |
| ff (dwords[bl / 64]); | |
| bl++; | |
| } | |
| } | |
| /* { dg-final { scan-tree-dump ">> 6" "vrp2" } } */ |