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  
      16  void init ()
      17  {
      18    s1.m1 = 4;
      19    s1.m2 = 0x7ca4b8;
      20    s1.m3 = 24;
      21  }
      22  
      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  
      32  int main ()
      33  {
      34      init ();
      35      foo ();
      36      return 0;
      37  }