1  /* Test AAPCS64 layout.
       2  
       3     Larger than machine-supported vector size.  The behavior is unspecified by
       4     the AAPCS64 document; the implementation opts for pass by reference.  */
       5  
       6  /* { dg-do run { target aarch64*-*-* } } */
       7  
       8  #ifndef IN_FRAMEWORK
       9  #define TESTFILE "test_dfp_23.c"
      10  
      11  typedef char A __attribute__ ((vector_size (64)));
      12  
      13  struct y
      14  {
      15    _Decimal64 df[8];
      16  };
      17  
      18  union u
      19  {
      20    struct y x;
      21    A a;
      22  } u;
      23  
      24  #define HAS_DATA_INIT_FUNC
      25  void init_data ()
      26  {
      27    u.x.df[0] = 1.0dd;
      28    u.x.df[1] = 2.0dd;
      29    u.x.df[2] = 3.0dd;
      30    u.x.df[3] = 4.0dd;
      31    u.x.df[4] = 5.0dd;
      32    u.x.df[5] = 6.0dd;
      33    u.x.df[6] = 7.0dd;
      34    u.x.df[7] = 8.0dd;
      35  }
      36  
      37  #include "abitest.h"
      38  #else
      39  ARG (_Decimal32, 123.0df, S0)
      40  PTR (A, u.a, X0)
      41  LAST_ARG_NONFLAT (int, 0xdeadbeef, X1, i32in64)
      42  #endif