1  /* Check that the FPUL register is used when reading a float as an int and
       2     vice versa, as opposed to pushing and popping the values over the stack.  */
       3  /* { dg-do compile { target { any_fpu } } }  */
       4  /* { dg-options "-O1" } */
       5  /* { dg-final { scan-assembler "fpul" } } */
       6  /* { dg-final { scan-assembler-not "r15" } } */
       7  
       8  int
       9  float_as_int (float val)
      10  {
      11    union { float f; int i; } u;
      12    u.f = val;
      13    return u.i;
      14  }
      15  
      16  float
      17  int_as_float (int val)
      18  {
      19    union { float f; int i; } u;
      20    u.i = val;
      21    return u.f;
      22  }
      23