1  /* Test AAPCS layout */
       2  /* C.5 If the argument is a Half- or Single- precision Floating-point type,
       3     then the size of the argument is set to 8 bytes.  The effect is as if
       4     the argument had been copied to the least significant bits of a 64-bit
       5     register and the remaining bits filled with unspecified values.  */
       6  /* TODO: add the check of half-precision floating-point when it is supported
       7     by the A64 GCC.  */
       8  
       9  /* { dg-do run { target aarch64*-*-* } } */
      10  
      11  #ifndef IN_FRAMEWORK
      12  #define VFP
      13  #define TESTFILE "test_16.c"
      14  
      15  #include "abitest.h"
      16  #else
      17    ARG(float, 1.0, S0)
      18    ARG(float, 2.0, S1)
      19    ARG(float, 3.0, S2)
      20    ARG(float, 4.0, S3)
      21    ARG(float, 5.0, S4)
      22    ARG(float, 6.0, S5)
      23    ARG(float, 7.0, S6)
      24    ARG(float, 8.0, S7)
      25  #ifndef __AAPCS64_BIG_ENDIAN__
      26    ARG(float, 9.0, STACK)
      27    LAST_ARG(float, 10.0, STACK+8)
      28  #else
      29    ARG(float, 9.0, STACK+4)
      30    LAST_ARG(float, 10.0, STACK+12)
      31  #endif
      32  #endif