Viewing file: func-ret-4.c (1.02 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Test AAPCS64 function result return.
This test covers complex types. Complex floating-point types are treated as homogeneous floating-point aggregates, while complex integral types are treated as general composite types. */
/* { dg-do run { target aarch64*-*-* } } */ /* { dg-additional-sources "abitest.S" } */ /* { dg-require-effective-target aarch64_big_endian } */
#ifndef IN_FRAMEWORK #define TESTFILE "func-ret-4.c"
#include "abitest-2.h" #else /* Complex floating-point types are passed in fp/simd registers. */ FUNC_VAL_CHECK ( 0, _Complex float , 12.3f + 23.4fi, S0, flat) FUNC_VAL_CHECK ( 1, _Complex double, 34.56 + 45.67i, D0, flat) FUNC_VAL_CHECK ( 2, _Complex long double, 56789.01234 + 67890.12345i, Q0, flat)
/* Complex integral types are passed in general registers or via a pointer in X8. */ FUNC_VAL_CHECK (10, _Complex short , 12345 + 23456i, X0, flat) FUNC_VAL_CHECK (11, _Complex int , 34567 + 45678i, X0, flat) FUNC_VAL_CHECK (12, _Complex __int128, 567890 + 678901i, X8, flat)
#endif
|