1  /* PR rtl-optimization/85925 */
       2  /* { dg-require-effective-target int32plus } */
       3  /* Testcase by <sudi@gcc.gnu.org> */
       4  
       5  int a, c, d;
       6  volatile int b;
       7  int *e = &d;
       8  
       9  union U1 {
      10    unsigned f0;
      11    unsigned f1 : 15;
      12  };
      13  volatile union U1 u = { 0x4030201 };
      14  
      15  int main (void)
      16  {
      17    for (c = 0; c <= 1; c++) {
      18      union U1 f = {0x4030201};
      19      if (c == 1)
      20        b;
      21      *e = f.f1;
      22    }
      23  
      24    if (d != u.f1)
      25      __builtin_abort ();
      26  
      27    return 0;
      28  }