1 /* PR tree-optimization/72835.  */
2 /* { dg-do run } */
3 /* { dg-options "-O2" } */
4 /* { dg-require-effective-target int32plus } */
5 
6 struct struct_1 {
7     unsigned int m1 : 6 ;
8     unsigned int m2 : 24 ;
9     unsigned int m3 : 6 ;
10 };
11 
12 unsigned short var_32 = 0x2d10;
13 
14 struct struct_1 s1;
15 
init()16 void init ()
17 {
18   s1.m1 = 4;
19   s1.m2 = 0x7ca4b8;
20   s1.m3 = 24;
21 }
22 
foo()23 void foo ()
24 {
25   unsigned int c
26     = ((unsigned int) s1.m2) * (-((unsigned int) s1.m3))
27     + (var_32) * (-((unsigned int) (s1.m1)));
28   if (c != 4098873984)
29     __builtin_abort ();
30 }
31 
main()32 int main ()
33 {
34     init ();
35     foo ();
36     return 0;
37 }
38