/* Test AAPCS64 layout. Larger than machine-supported vector size. The behaviour is unspecified by the AAPCS64 document; the implementation opts for pass by reference. */ /* { dg-do run { target aarch64*-*-* } } */ #ifndef IN_FRAMEWORK #define TESTFILE "test_23.c" typedef char A __attribute__ ((vector_size (64))); struct y { double df[8]; }; union u { struct y x; A a; } u; #define HAS_DATA_INIT_FUNC void init_data () { u.x.df[0] = 1.0; u.x.df[1] = 2.0; u.x.df[2] = 3.0; u.x.df[3] = 4.0; u.x.df[4] = 5.0; u.x.df[5] = 6.0; u.x.df[6] = 7.0; u.x.df[7] = 8.0; } #include "abitest.h" #else ARG (float, 123.0f, S0) PTR (A, u.a, X0) LAST_ARG_NONFLAT (int, 0xdeadbeef, X1, i32in64) #endif