1 /* { dg-do assemble } */
2 /* { dg-options "-O --save-temps" } */
3
4 #pragma GCC target "+nosimd+fp"
5
6 #define TEST_GENERAL(TYPE) \
7 TYPE mov_##TYPE (TYPE a, TYPE b) { return b; } \
8 TYPE zero_##TYPE () { return (TYPE) {}; } \
9 TYPE load_##TYPE (TYPE *ptr) { return *ptr; } \
10 void store_##TYPE (TYPE *ptr, TYPE a) { *ptr = a; }
11
12 TEST_GENERAL (__Int8x16_t)
13 TEST_GENERAL (__Int16x8_t)
14 TEST_GENERAL (__Int32x4_t)
15 TEST_GENERAL (__Int64x2_t)
16 TEST_GENERAL (__Bfloat16x8_t)
17 TEST_GENERAL (__Float16x8_t)
18 TEST_GENERAL (__Float32x4_t)
19 TEST_GENERAL (__Float64x2_t)
20
21 __Int8x16_t const_s8x8 () { return (__Int8x16_t) { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; }
22 __Int16x8_t const_s16x4 () { return (__Int16x8_t) { 1, 0, 1, 0, 1, 0, 1, 0 }; }
23 __Int32x4_t const_s32x2 () { return (__Int32x4_t) { 1, 2, 3, 4 }; }
24 __Int64x2_t const_s64x1 () { return (__Int64x2_t) { 100, 100 }; }
25 __Float16x8_t const_f16x4 () { return (__Float16x8_t) { 2, 2, 2, 2, 2, 2, 2, 2 }; }
26 __Float32x4_t const_f32x2 () { return (__Float32x4_t) { 1, 2, 1, 2 }; }
27 __Float64x2_t const_f64x1 () { return (__Float64x2_t) { 32, 32 }; }