diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h b/gcc-4.9/gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h new file mode 100644 index 000000000..a95d06aa2 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h @@ -0,0 +1,157 @@ +/* This header file defines some types that are used in the AAPCS64 tests. */ + + +/* 64-bit vector of 2 floats. */ +typedef float vf2_t __attribute__((vector_size (8))); + +/* 128-bit vector of 4 floats. */ +typedef float vf4_t __attribute__((vector_size (16))); + +/* 128-bit vector of 4 ints. */ +typedef int vi4_t __attribute__((vector_size (16))); + +/* signed quad-word (in an union for the convenience of initialization). */ +union int128_t +{ + __int128 i; + struct + { + signed long long l64; + signed long long h64; + }; +}; + +/* Homogeneous floating-point composite types. */ + +struct hfa_fx1_t +{ + float a; +}; + +struct hfa_fx2_t +{ + float a; + float b; +}; + +struct hfa_dx2_t +{ + double a; + double b; +}; + +struct hfa_dx4_t +{ + double a; + double b; + double c; + double d; +}; + +struct hfa_ldx3_t +{ + long double a; + long double b; + long double c; +}; + +struct hfa_ffs_t +{ + float a; + float b; + struct hfa_fx2_t c; +}; + +union hfa_union_t +{ + struct + { + float a; + float b; + } s; + float c; +}; + +/* Non homogeneous floating-point-composite types. */ + +struct non_hfa_fx5_t +{ + float a; + float b; + float c; + float d; + float e; +}; + +struct non_hfa_ffs_t +{ + float a; + float b; + struct hfa_dx2_t c; +}; + +struct non_hfa_ffs_2_t +{ + struct + { + int a; + int b; + } s; + float c; + float d; +}; + +struct hva_vf2x1_t +{ + vf2_t a; +}; + +struct hva_vf2x2_t +{ + vf2_t a; + vf2_t b; +}; + +struct hva_vi4x1_t +{ + vi4_t a; +}; + +struct non_hfa_ffd_t +{ + float a; + float b; + double c; +}; + +struct non_hfa_ii_t +{ + int a; + int b; +}; + +struct non_hfa_c_t +{ + char a; +}; + +struct non_hfa_ffvf2_t +{ + float a; + float b; + vf2_t c; +}; + +struct non_hfa_fffd_t +{ + float a; + float b; + float c; + double d; +}; + +union non_hfa_union_t +{ + double a; + float b; +}; |