Viewing file: test_25.c (1.12 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Test AAPCS64 layout
Test homogeneous floating-point aggregates and homogeneous short-vector aggregates, which should be passed in SIMD/FP registers or via the stack. */
/* { dg-do run { target aarch64*-*-* } } */
#ifndef IN_FRAMEWORK #define TESTFILE "test_25.c"
typedef float vf2_t __attribute__((vector_size (8))); struct x0 { vf2_t v; } s0; struct x3 { vf2_t v[2]; } s3; struct x4 { vf2_t v[3]; } s4;
typedef float vf4_t __attribute__((vector_size(16))); struct x1 { vf4_t v; } s1;
struct x2 { double df[3]; } s2;
#define HAS_DATA_INIT_FUNC void init_data () { s0.v = (vf2_t){ 17.f, 18.f }; s1.v = (vf4_t){ 567.890f, 678.901f, 789.012f, 890.123f }; s2.df[0] = 123.456; s2.df[1] = 234.567; s2.df[2] = 345.678; s3.v[0] = (vf2_t){ 19.f, 20.f }; s3.v[1] = (vf2_t){ 23.f, 24.f }; s4.v[0] = (vf2_t){ 27.f, 28.f }; s4.v[1] = (vf2_t){ 31.f, 32.f }; s4.v[2] = (vf2_t){ 35.f, 36.f }; }
#include "abitest.h" #else ARG (struct x0, s0, D0) ARG (struct x2, s2, D1) ARG (struct x1, s1, Q4) ARG (struct x3, s3, D5) ARG (struct x4, s4, STACK) ARG (int, 0xdeadbeef, W0) LAST_ARG (double, 456.789, STACK+24) #endif
|