1/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2/* { dg-options "-O2" } */
3
4/* { dg-final { scan-assembler-not "rlwinm \[0-9\]+,\[0-9\]+,\[0-9\]+,1,31"  } } */
5/* { dg-final { scan-assembler-not "rlwinm \[0-9\]+,\[0-9\]+,\[0-9\]+,0xffffffff" } } */
6
7/* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
8
9/* PR 17104 many sign extends added.  */
10
11struct {
12 int f1 : 1;
13 int f2 : 1;
14 int f3 : 1;
15 int f4 : 1;
16 int f5 : 1;
17 int f6 : 1;
18 int f7 : 1;
19 int f8 : 1;
20 int f9 : 1;
21 int f10 : 1;
22 int f11 : 1;
23 int f12 : 1;
24 int f13 : 1;
25 int f14 : 1;
26 int f15 : 1;
27 int f16 : 1;
28 int f17 : 2;
29 int f18 : 2;
30 int f19 : 2;
31 int f20 : 2;
32 int f21 : 2;
33 int f22 : 2;
34 int f23 : 2;
35 int f24 : 2;
36 } s;
37
38void foo ()
39{
40
41    s.f1 = 0;
42    s.f2 = 0;
43    s.f3 = 0;
44    s.f4 = 0;
45    s.f5 = 0;
46    s.f6 = 0;
47    s.f7 = 0;
48    s.f8 = 0;
49    s.f9 = 0;
50    s.f10 = 0;
51    s.f11 = 0;
52    s.f12 = 0;
53    s.f13 = 0;
54    s.f14 = 0;
55    s.f15 = 0;
56    s.f16 = 0;
57    s.f17 = 0;
58    s.f18 = 0;
59    s.f19 = 0;
60    s.f20 = 0;
61    s.f21 = 0;
62    s.f22 = 0;
63    s.f23 = 0;
64    s.f24 = 0;
65
66}
67
68