| /* Test AAPCS64 layout |
| |
| Test named homogeneous floating-point aggregates of __fp16 data, |
| which should be passed in SIMD/FP registers or via the stack. */ |
| |
| /* { dg-do run { target aarch64*-*-* } } */ |
| |
| #ifndef IN_FRAMEWORK |
| #define TESTFILE "test_27.c" |
| |
| struct x0 |
| { |
| __fp16 v[1]; |
| } f16x1; |
| |
| struct x1 |
| { |
| __fp16 v[2]; |
| } f16x2; |
| |
| struct x2 |
| { |
| __fp16 v[3]; |
| } f16x3; |
| |
| #define HAS_DATA_INIT_FUNC |
| void init_data () |
| { |
| f16x1.v[0] = 2.0f; |
| f16x2.v[0] = 4.0f; |
| f16x2.v[1] = 8.0f; |
| f16x3.v[0] = 16.0f; |
| f16x3.v[1] = 32.0f; |
| f16x3.v[2] = 64.0f; |
| } |
| |
| #include "abitest.h" |
| #else |
| ARG (struct x0, f16x1, H0) |
| ARG (struct x1, f16x2, H1) |
| ARG (struct x2, f16x3, H3) |
| ARG (struct x1, f16x2, H6) |
| ARG (struct x0, f16x1, STACK) |
| ARG (int, 0xdeadbeef, W0) |
| LAST_ARG (double, 456.789, STACK+8) |
| #endif |