1 /* { dg-do assemble } */
2 /* { dg-options "-O --save-temps" } */
3 /* { dg-final { check-function-bodies "**" "" "" } } */
4
5 #pragma GCC target "+nosimd+fp"
6
7 #define TEST_VECTOR(TYPE) \
8 TYPE \
9 test_##TYPE (void) \
10 { \
11 typedef TYPE v __attribute__((aligned(1))); \
12 register v *ptr asm ("x0"); \
13 asm volatile ("" : "=r" (ptr)); \
14 return *ptr; \
15 }
16
17 TEST_VECTOR (__Int8x16_t)
18 TEST_VECTOR (__Int16x8_t)
19 TEST_VECTOR (__Int32x4_t)
20 TEST_VECTOR (__Int64x2_t)
21 TEST_VECTOR (__Bfloat16x8_t)
22 TEST_VECTOR (__Float16x8_t)
23 TEST_VECTOR (__Float32x4_t)
24 TEST_VECTOR (__Float64x2_t)
25
26 /*
27 ** test___Int8x16_t:
28 ** ldr q0, \[x0\]
29 ** ret
30 */