Merge from mainline
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / 20030807-10.c
blobfe5e859ee5d0dd867298c931ed41a92a6a17bf3e
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-vrp1" } */
5 extern const unsigned char mode_size[];
6 unsigned int
7 subreg_highpart_offset (outermode, innermode)
8 int outermode, innermode;
10 unsigned int offset = 0;
11 int difference = (mode_size[innermode] - mode_size[outermode]);
12 if (difference > 0)
14 offset += difference % (0 ? 8 : 4);
15 offset += difference / 4 * 4;
17 return offset;
20 /* There should be one mask with the value 3. */
21 /* { dg-final { scan-tree-dump-times " \& 3" 1 "vrp1"} } */
23 /* There should be one right shift by 2 places. */
24 /* { dg-final { scan-tree-dump-times " >> 2" 1 "vrp1"} } */
26 /* { dg-final { cleanup-tree-dump "vrp1" } } */