1  /* { dg-do run } */
       2  /* { dg-options "-O2 -mno-sse" } */
       3  
       4  int flag;
       5  union { double f; unsigned long long i; } u;
       6  void __attribute__((noinline))
       7  init ()
       8  {
       9    flag = 1;
      10    u.i = 18442936822990639076ULL;
      11  }
      12  unsigned long long __attribute__((noinline))
      13  test ()
      14  {
      15    if (flag)
      16      return u.i;
      17    else
      18      return u.f;
      19  }
      20  int main()
      21  {
      22    init ();
      23    if (test () != 18442936822990639076ULL)
      24      __builtin_abort ();
      25    return 0;
      26  }