]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s32.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
3 #include "test_sve_acle.h"
7 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
10 TEST_UNIFORM_Z (rhadd_s32_m_tied1
, svint32_t
,
11 z0
= svrhadd_s32_m (p0
, z0
, z1
),
12 z0
= svrhadd_m (p0
, z0
, z1
))
16 ** mov (z[0-9]+)\.d, z0\.d
18 ** srhadd z0\.s, p0/m, z0\.s, \1\.s
21 TEST_UNIFORM_Z (rhadd_s32_m_tied2
, svint32_t
,
22 z0
= svrhadd_s32_m (p0
, z1
, z0
),
23 z0
= svrhadd_m (p0
, z1
, z0
))
26 ** rhadd_s32_m_untied:
28 ** srhadd z0\.s, p0/m, z0\.s, z2\.s
31 TEST_UNIFORM_Z (rhadd_s32_m_untied
, svint32_t
,
32 z0
= svrhadd_s32_m (p0
, z1
, z2
),
33 z0
= svrhadd_m (p0
, z1
, z2
))
36 ** rhadd_w0_s32_m_tied1:
37 ** mov (z[0-9]+\.s), w0
38 ** srhadd z0\.s, p0/m, z0\.s, \1
41 TEST_UNIFORM_ZX (rhadd_w0_s32_m_tied1
, svint32_t
, int32_t,
42 z0
= svrhadd_n_s32_m (p0
, z0
, x0
),
43 z0
= svrhadd_m (p0
, z0
, x0
))
46 ** rhadd_w0_s32_m_untied:
47 ** mov (z[0-9]+\.s), w0
49 ** srhadd z0\.s, p0/m, z0\.s, \1
52 TEST_UNIFORM_ZX (rhadd_w0_s32_m_untied
, svint32_t
, int32_t,
53 z0
= svrhadd_n_s32_m (p0
, z1
, x0
),
54 z0
= svrhadd_m (p0
, z1
, x0
))
57 ** rhadd_11_s32_m_tied1:
58 ** mov (z[0-9]+\.s), #11
59 ** srhadd z0\.s, p0/m, z0\.s, \1
62 TEST_UNIFORM_Z (rhadd_11_s32_m_tied1
, svint32_t
,
63 z0
= svrhadd_n_s32_m (p0
, z0
, 11),
64 z0
= svrhadd_m (p0
, z0
, 11))
67 ** rhadd_11_s32_m_untied:: { xfail *-*-*}
68 ** mov (z[0-9]+\.s), #11
70 ** srhadd z0\.s, p0/m, z0\.s, \1
73 TEST_UNIFORM_Z (rhadd_11_s32_m_untied
, svint32_t
,
74 z0
= svrhadd_n_s32_m (p0
, z1
, 11),
75 z0
= svrhadd_m (p0
, z1
, 11))
79 ** movprfx z0\.s, p0/z, z0\.s
80 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
83 TEST_UNIFORM_Z (rhadd_s32_z_tied1
, svint32_t
,
84 z0
= svrhadd_s32_z (p0
, z0
, z1
),
85 z0
= svrhadd_z (p0
, z0
, z1
))
89 ** movprfx z0\.s, p0/z, z0\.s
90 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
93 TEST_UNIFORM_Z (rhadd_s32_z_tied2
, svint32_t
,
94 z0
= svrhadd_s32_z (p0
, z1
, z0
),
95 z0
= svrhadd_z (p0
, z1
, z0
))
98 ** rhadd_s32_z_untied:
100 ** movprfx z0\.s, p0/z, z1\.s
101 ** srhadd z0\.s, p0/m, z0\.s, z2\.s
103 ** movprfx z0\.s, p0/z, z2\.s
104 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
108 TEST_UNIFORM_Z (rhadd_s32_z_untied
, svint32_t
,
109 z0
= svrhadd_s32_z (p0
, z1
, z2
),
110 z0
= svrhadd_z (p0
, z1
, z2
))
113 ** rhadd_w0_s32_z_tied1:
114 ** mov (z[0-9]+\.s), w0
115 ** movprfx z0\.s, p0/z, z0\.s
116 ** srhadd z0\.s, p0/m, z0\.s, \1
119 TEST_UNIFORM_ZX (rhadd_w0_s32_z_tied1
, svint32_t
, int32_t,
120 z0
= svrhadd_n_s32_z (p0
, z0
, x0
),
121 z0
= svrhadd_z (p0
, z0
, x0
))
124 ** rhadd_w0_s32_z_untied:
125 ** mov (z[0-9]+\.s), w0
127 ** movprfx z0\.s, p0/z, z1\.s
128 ** srhadd z0\.s, p0/m, z0\.s, \1
130 ** movprfx z0\.s, p0/z, \1
131 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
135 TEST_UNIFORM_ZX (rhadd_w0_s32_z_untied
, svint32_t
, int32_t,
136 z0
= svrhadd_n_s32_z (p0
, z1
, x0
),
137 z0
= svrhadd_z (p0
, z1
, x0
))
140 ** rhadd_11_s32_z_tied1:
141 ** mov (z[0-9]+\.s), #11
142 ** movprfx z0\.s, p0/z, z0\.s
143 ** srhadd z0\.s, p0/m, z0\.s, \1
146 TEST_UNIFORM_Z (rhadd_11_s32_z_tied1
, svint32_t
,
147 z0
= svrhadd_n_s32_z (p0
, z0
, 11),
148 z0
= svrhadd_z (p0
, z0
, 11))
151 ** rhadd_11_s32_z_untied:
152 ** mov (z[0-9]+\.s), #11
154 ** movprfx z0\.s, p0/z, z1\.s
155 ** srhadd z0\.s, p0/m, z0\.s, \1
157 ** movprfx z0\.s, p0/z, \1
158 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
162 TEST_UNIFORM_Z (rhadd_11_s32_z_untied
, svint32_t
,
163 z0
= svrhadd_n_s32_z (p0
, z1
, 11),
164 z0
= svrhadd_z (p0
, z1
, 11))
167 ** rhadd_s32_x_tied1:
168 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
171 TEST_UNIFORM_Z (rhadd_s32_x_tied1
, svint32_t
,
172 z0
= svrhadd_s32_x (p0
, z0
, z1
),
173 z0
= svrhadd_x (p0
, z0
, z1
))
176 ** rhadd_s32_x_tied2:
177 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
180 TEST_UNIFORM_Z (rhadd_s32_x_tied2
, svint32_t
,
181 z0
= svrhadd_s32_x (p0
, z1
, z0
),
182 z0
= svrhadd_x (p0
, z1
, z0
))
185 ** rhadd_s32_x_untied:
188 ** srhadd z0\.s, p0/m, z0\.s, z2\.s
191 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
195 TEST_UNIFORM_Z (rhadd_s32_x_untied
, svint32_t
,
196 z0
= svrhadd_s32_x (p0
, z1
, z2
),
197 z0
= svrhadd_x (p0
, z1
, z2
))
200 ** rhadd_w0_s32_x_tied1:
201 ** mov (z[0-9]+\.s), w0
202 ** srhadd z0\.s, p0/m, z0\.s, \1
205 TEST_UNIFORM_ZX (rhadd_w0_s32_x_tied1
, svint32_t
, int32_t,
206 z0
= svrhadd_n_s32_x (p0
, z0
, x0
),
207 z0
= svrhadd_x (p0
, z0
, x0
))
210 ** rhadd_w0_s32_x_untied:
212 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
215 TEST_UNIFORM_ZX (rhadd_w0_s32_x_untied
, svint32_t
, int32_t,
216 z0
= svrhadd_n_s32_x (p0
, z1
, x0
),
217 z0
= svrhadd_x (p0
, z1
, x0
))
220 ** rhadd_11_s32_x_tied1:
221 ** mov (z[0-9]+\.s), #11
222 ** srhadd z0\.s, p0/m, z0\.s, \1
225 TEST_UNIFORM_Z (rhadd_11_s32_x_tied1
, svint32_t
,
226 z0
= svrhadd_n_s32_x (p0
, z0
, 11),
227 z0
= svrhadd_x (p0
, z0
, 11))
230 ** rhadd_11_s32_x_untied:
232 ** srhadd z0\.s, p0/m, z0\.s, z1\.s
235 TEST_UNIFORM_Z (rhadd_11_s32_x_untied
, svint32_t
,
236 z0
= svrhadd_n_s32_x (p0
, z1
, 11),
237 z0
= svrhadd_x (p0
, z1
, 11))