1 /* { dg-options "-O2 -msve-vector-bits=256" } */
2 /* { dg-final { check-function-bodies "**" "" } } */
6 #define N __ARM_FEATURE_SVE_BITS
7 #define FIXED_ATTR __attribute__ ((arm_sve_vector_bits (N)))
8 #define GNU_ATTR __attribute__ ((vector_size (N / 8)))
10 typedef svint8_t fixed_int8_t FIXED_ATTR
;
12 typedef svbool_t fixed_bool_t FIXED_ATTR
;
14 typedef int8_t gnu_int8_t GNU_ATTR
;
22 ** add z0\.b, (?:z0\.b, z1\.b|z1\.b, z0\.b)
26 test_add (fixed_int8_t x
, fixed_int8_t y
)
34 ** add (z[0-9]+\.b), (?:z0\.b, z1\.b|z1\.b, z0\.b)
35 ** ptrue (p[0-7])\.b, vl32
36 ** st1b \1, \2, \[x8\]
38 ** ptrue (p[0-7]\.b), vl32
39 ** add (z[0-9]+)\.b, (?:z0\.b, z1\.b|z1\.b, z0\.b)
40 ** st1b \4, \3, \[x8\]
45 test_add_gnu (fixed_int8_t x
, fixed_int8_t y
)
51 ** test_load: { target lp64 }
52 ** ld1b z0\.b, p0/z, \[x0\]
56 ** test_load: { target ilp32 }
58 ** ld1b z0\.b, p0/z, \[x0\]
62 test_load (fixed_bool_t pg
, int8_t *ptr
)
64 return svld1 (pg
, ptr
);
68 ** test_store: { target lp64 }
69 ** st1b z0\.b, p0, \[x0\]
73 ** test_store: { target ilp32 }
75 ** st1b z0\.b, p0, \[x0\]
79 test_store (fixed_bool_t pg
, int8_t *ptr
, fixed_int8_t data
)
81 svst1 (pg
, ptr
, data
);
86 ** and p0\.b, p0/z, p1\.b, p2\.b
90 test_and_z (fixed_bool_t pg
, svbool_t p1
, fixed_bool_t p2
)
92 return svand_z (pg
, p1
, p2
);