Enable gcc.dg/vect/vect-early-break_21.c on x86_64
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / advsimd-intrinsics / vfmas_n_f16_1.c
blobf01aefb51adedba0768cac484531e5c58758fdfd
1 /* { dg-do run } */
2 /* { dg-require-effective-target arm_v8_2a_fp16_neon_hw } */
3 /* { dg-add-options arm_v8_2a_fp16_neon } */
4 /* { dg-skip-if "" { arm*-*-* } } */
6 #include <arm_neon.h>
7 #include "arm-neon-ref.h"
8 #include "compute-ref-data.h"
10 #define FP16_C(a) ((__fp16) a)
11 #define A0 FP16_C (123.4)
12 #define A1 FP16_C (-5.8)
13 #define A2 FP16_C (-0.0)
14 #define A3 FP16_C (10)
15 #define A4 FP16_C (123412.43)
16 #define A5 FP16_C (-5.8)
17 #define A6 FP16_C (90.8)
18 #define A7 FP16_C (24)
20 #define B0 FP16_C (23.4)
21 #define B1 FP16_C (-5.8)
22 #define B2 FP16_C (8.9)
23 #define B3 FP16_C (4.0)
24 #define B4 FP16_C (3.4)
25 #define B5 FP16_C (-550.8)
26 #define B6 FP16_C (-31.8)
27 #define B7 FP16_C (20000.0)
29 /* Expected results for vfma_n. */
30 VECT_VAR_DECL (expected_fma0_static, hfloat, 16, 4) []
31 = { 0x613E /* A0 + B0 * B0. */,
32 0xD86D /* A1 + B1 * B0. */,
33 0x5A82 /* A2 + B2 * B0. */,
34 0x567A /* A3 + B3 * B0. */ };
36 VECT_VAR_DECL (expected_fma1_static, hfloat, 16, 4) []
37 = { 0xCA33 /* A0 + B0 * B1. */,
38 0x4EF6 /* A1 + B1 * B1. */,
39 0xD274 /* A2 + B2 * B1. */,
40 0xCA9A /* A3 + B3 * B1. */ };
42 VECT_VAR_DECL (expected_fma2_static, hfloat, 16, 4) []
43 = { 0x5D2F /* A0 + B0 * B2. */,
44 0xD32D /* A1 + B1 * B2. */,
45 0x54F3 /* A2 + B2 * B2. */,
46 0x51B3 /* A3 + B3 * B2. */ };
48 VECT_VAR_DECL (expected_fma3_static, hfloat, 16, 4) []
49 = { 0x5AC8 /* A0 + B0 * B3. */,
50 0xCF40 /* A1 + B1 * B3. */,
51 0x5073 /* A2 + B2 * B3. */,
52 0x4E80 /* A3 + B3 * B3. */ };
54 VECT_VAR_DECL (expected_fma0_static, hfloat, 16, 8) []
55 = { 0x613E /* A0 + B0 * B0. */,
56 0xD86D /* A1 + B1 * B0. */,
57 0x5A82 /* A2 + B2 * B0. */,
58 0x567A /* A3 + B3 * B0. */,
59 0x7C00 /* A4 + B4 * B0. */,
60 0xF24D /* A5 + B5 * B0. */,
61 0xE11B /* A6 + B6 * B0. */,
62 0x7C00 /* A7 + B7 * B0. */ };
64 VECT_VAR_DECL (expected_fma1_static, hfloat, 16, 8) []
65 = { 0xCA33 /* A0 + B0 * B1. */,
66 0x4EF6 /* A1 + B1 * B1. */,
67 0xD274 /* A2 + B2 * B1. */,
68 0xCA9A /* A3 + B3 * B1. */,
69 0x7C00 /* A4 + B4 * B1. */,
70 0x6A3B /* A5 + B5 * B1. */,
71 0x5C4D /* A6 + B6 * B1. */,
72 0xFC00 /* A7 + B7 * B1. */ };
74 VECT_VAR_DECL (expected_fma2_static, hfloat, 16, 8) []
75 = { 0x5D2F /* A0 + B0 * B2. */,
76 0xD32D /* A1 + B1 * B2. */,
77 0x54F3 /* A2 + B2 * B2. */,
78 0x51B3 /* A3 + B3 * B2. */,
79 0x7C00 /* A4 + B4 * B2. */,
80 0xECCB /* A5 + B5 * B2. */,
81 0xDA01 /* A6 + B6 * B2. */,
82 0x7C00 /* A7 + B7 * B2. */ };
84 VECT_VAR_DECL (expected_fma3_static, hfloat, 16, 8) []
85 = { 0x5AC8 /* A0 + B0 * B3. */,
86 0xCF40 /* A1 + B1 * B3. */,
87 0x5073 /* A2 + B2 * B3. */,
88 0x4E80 /* A3 + B3 * B3. */,
89 0x7C00 /* A4 + B4 * B3. */,
90 0xE851 /* A5 + B5 * B3. */,
91 0xD08C /* A6 + B6 * B3. */,
92 0x7C00 /* A7 + B7 * B3. */ };
94 VECT_VAR_DECL (expected_fma4_static, hfloat, 16, 8) []
95 = { 0x5A58 /* A0 + B0 * B4. */,
96 0xCE62 /* A1 + B1 * B4. */,
97 0x4F91 /* A2 + B2 * B4. */,
98 0x4DE6 /* A3 + B3 * B4. */,
99 0x7C00 /* A4 + B4 * B4. */,
100 0xE757 /* A5 + B5 * B4. */,
101 0xCC54 /* A6 + B6 * B4. */,
102 0x7C00 /* A7 + B7 * B4. */ };
104 VECT_VAR_DECL (expected_fma5_static, hfloat, 16, 8) []
105 = { 0xF23D /* A0 + B0 * B5. */,
106 0x6A3B /* A1 + B1 * B5. */,
107 0xECCA /* A2 + B2 * B5. */,
108 0xE849 /* A3 + B3 * B5. */,
109 0x7C00 /* A4 + B4 * B5. */,
110 0x7C00 /* A5 + B5 * B5. */,
111 0x744D /* A6 + B6 * B5. */,
112 0xFC00 /* A7 + B7 * B5. */ };
114 VECT_VAR_DECL (expected_fma6_static, hfloat, 16, 8) []
115 = { 0xE0DA /* A0 + B0 * B6. */,
116 0x5995 /* A1 + B1 * B6. */,
117 0xDC6C /* A2 + B2 * B6. */,
118 0xD753 /* A3 + B3 * B6. */,
119 0x7C00 /* A4 + B4 * B6. */,
120 0x7447 /* A5 + B5 * B6. */,
121 0x644E /* A6 + B6 * B6. */,
122 0xFC00 /* A7 + B7 * B6. */ };
124 VECT_VAR_DECL (expected_fma7_static, hfloat, 16, 8) []
125 = { 0x7C00 /* A0 + B0 * B7. */,
126 0xFC00 /* A1 + B1 * B7. */,
127 0x7C00 /* A2 + B2 * B7. */,
128 0x7C00 /* A3 + B3 * B7. */,
129 0x7C00 /* A4 + B4 * B7. */,
130 0xFC00 /* A5 + B5 * B7. */,
131 0xFC00 /* A6 + B6 * B7. */,
132 0x7C00 /* A7 + B7 * B7. */ };
134 /* Expected results for vfms_n. */
135 VECT_VAR_DECL (expected_fms0_static, hfloat, 16, 4) []
136 = { 0xDEA2 /* A0 + (-B0) * B0. */,
137 0x5810 /* A1 + (-B1) * B0. */,
138 0xDA82 /* A2 + (-B2) * B0. */,
139 0xD53A /* A3 + (-B3) * B0. */ };
141 VECT_VAR_DECL (expected_fms1_static, hfloat, 16, 4) []
142 = { 0x5C0D /* A0 + (-B0) * B1. */,
143 0xD0EE /* A1 + (-B1) * B1. */,
144 0x5274 /* A2 + (-B2) * B1. */,
145 0x5026 /* A3 + (-B3) * B1. */ };
147 VECT_VAR_DECL (expected_fms2_static, hfloat, 16, 4) []
148 = { 0xD54E /* A0 + (-B0) * B2. */,
149 0x51BA /* A1 + (-B1) * B2. */,
150 0xD4F3 /* A2 + (-B2) * B2. */,
151 0xCE66 /* A3 + (-B3) * B2. */ };
153 VECT_VAR_DECL (expected_fms3_static, hfloat, 16, 4) []
154 = { 0x4F70 /* A0 + (-B0) * B3. */,
155 0x4C5A /* A1 + (-B1) * B3. */,
156 0xD073 /* A2 + (-B2) * B3. */,
157 0xC600 /* A3 + (-B3) * B3. */ };
159 VECT_VAR_DECL (expected_fms0_static, hfloat, 16, 8) []
160 = { 0xDEA2 /* A0 + (-B0) * B0. */,
161 0x5810 /* A1 + (-B1) * B0. */,
162 0xDA82 /* A2 + (-B2) * B0. */,
163 0xD53A /* A3 + (-B3) * B0. */,
164 0x7C00 /* A4 + (-B4) * B0. */,
165 0x724B /* A5 + (-B5) * B0. */,
166 0x6286 /* A6 + (-B6) * B0. */,
167 0xFC00 /* A7 + (-B7) * B0. */ };
169 VECT_VAR_DECL (expected_fms1_static, hfloat, 16, 8) []
170 = { 0x5C0D /* A0 + (-B0) * B1. */,
171 0xD0EE /* A1 + (-B1) * B1. */,
172 0x5274 /* A2 + (-B2) * B1. */,
173 0x5026 /* A3 + (-B3) * B1. */,
174 0x7C00 /* A4 + (-B4) * B1. */,
175 0xEA41 /* A5 + (-B5) * B1. */,
176 0xD5DA /* A6 + (-B6) * B1. */,
177 0x7C00 /* A7 + (-B7) * B1. */ };
179 VECT_VAR_DECL (expected_fms2_static, hfloat, 16, 8) []
180 = { 0xD54E /* A0 + (-B0) * B2. */,
181 0x51BA /* A1 + (-B1) * B2. */,
182 0xD4F3 /* A2 + (-B2) * B2. */,
183 0xCE66 /* A3 + (-B3) * B2. */,
184 0x7C00 /* A4 + (-B4) * B2. */,
185 0x6CC8 /* A5 + (-B5) * B2. */,
186 0x5DD7 /* A6 + (-B6) * B2. */,
187 0xFC00 /* A7 + (-B7) * B2. */ };
189 VECT_VAR_DECL (expected_fms3_static, hfloat, 16, 8) []
190 = { 0x4F70 /* A0 + (-B0) * B3. */,
191 0x4C5A /* A1 + (-B1) * B3. */,
192 0xD073 /* A2 + (-B2) * B3. */,
193 0xC600 /* A3 + (-B3) * B3. */,
194 0x7C00 /* A4 + (-B4) * B3. */,
195 0x684B /* A5 + (-B5) * B3. */,
196 0x5AD0 /* A6 + (-B6) * B3. */,
197 0xFC00 /* A7 + (-B7) * B3. */ };
199 VECT_VAR_DECL (expected_fms4_static, hfloat, 16, 8) []
200 = { 0x5179 /* A0 + (-B0) * B4. */,
201 0x4AF6 /* A1 + (-B1) * B4. */,
202 0xCF91 /* A2 + (-B2) * B4. */,
203 0xC334 /* A3 + (-B3) * B4. */,
204 0x7C00 /* A4 + (-B4) * B4. */,
205 0x674C /* A5 + (-B5) * B4. */,
206 0x5A37 /* A6 + (-B6) * B4. */,
207 0xFC00 /* A7 + (-B7) * B4. */ };
209 VECT_VAR_DECL (expected_fms5_static, hfloat, 16, 8) []
210 = { 0x725C /* A0 + (-B0) * B5. */,
211 0xEA41 /* A1 + (-B1) * B5. */,
212 0x6CCA /* A2 + (-B2) * B5. */,
213 0x6853 /* A3 + (-B3) * B5. */,
214 0x7C00 /* A4 + (-B4) * B5. */,
215 0xFC00 /* A5 + (-B5) * B5. */,
216 0xF441 /* A6 + (-B6) * B5. */,
217 0x7C00 /* A7 + (-B7) * B5. */ };
219 VECT_VAR_DECL (expected_fms6_static, hfloat, 16, 8) []
220 = { 0x62C7 /* A0 + (-B0) * B6. */,
221 0xD9F2 /* A1 + (-B1) * B6. */,
222 0x5C6C /* A2 + (-B2) * B6. */,
223 0x584A /* A3 + (-B3) * B6. */,
224 0x7C00 /* A4 + (-B4) * B6. */,
225 0xF447 /* A5 + (-B5) * B6. */,
226 0xE330 /* A6 + (-B6) * B6. */,
227 0x7C00 /* A7 + (-B7) * B6. */ };
229 VECT_VAR_DECL (expected_fms7_static, hfloat, 16, 8) []
230 = { 0xFC00 /* A0 + (-B0) * B7. */,
231 0x7C00 /* A1 + (-B1) * B7. */,
232 0xFC00 /* A2 + (-B2) * B7. */,
233 0xFC00 /* A3 + (-B3) * B7. */,
234 0x7C00 /* A4 + (-B4) * B7. */,
235 0x7C00 /* A5 + (-B5) * B7. */,
236 0x7C00 /* A6 + (-B6) * B7. */,
237 0xFC00 /* A7 + (-B7) * B7. */ };
239 void exec_vfmas_n_f16 (void)
241 #undef TEST_MSG
242 #define TEST_MSG "VFMA_N (FP16)"
243 clean_results ();
245 DECL_VARIABLE(vsrc_1, float, 16, 4);
246 DECL_VARIABLE(vsrc_2, float, 16, 4);
247 VECT_VAR_DECL (buf_src_1, float, 16, 4) [] = {A0, A1, A2, A3};
248 VECT_VAR_DECL (buf_src_2, float, 16, 4) [] = {B0, B1, B2, B3};
249 VLOAD (vsrc_1, buf_src_1, , float, f, 16, 4);
250 VLOAD (vsrc_2, buf_src_2, , float, f, 16, 4);
251 DECL_VARIABLE (vector_res, float, 16, 4)
252 = vfma_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
253 VECT_VAR (vsrc_2, float, 16, 4), B0);
255 vst1_f16 (VECT_VAR (result, float, 16, 4),
256 VECT_VAR (vector_res, float, 16, 4));
258 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fma0_static, "");
260 VECT_VAR (vector_res, float, 16, 4)
261 = vfma_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
262 VECT_VAR (vsrc_2, float, 16, 4), B1);
263 vst1_f16 (VECT_VAR (result, float, 16, 4),
264 VECT_VAR (vector_res, float, 16, 4));
266 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fma1_static, "");
268 VECT_VAR (vector_res, float, 16, 4)
269 = vfma_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
270 VECT_VAR (vsrc_2, float, 16, 4), B2);
271 vst1_f16 (VECT_VAR (result, float, 16, 4),
272 VECT_VAR (vector_res, float, 16, 4));
274 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fma2_static, "");
276 VECT_VAR (vector_res, float, 16, 4)
277 = vfma_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
278 VECT_VAR (vsrc_2, float, 16, 4), B3);
279 vst1_f16 (VECT_VAR (result, float, 16, 4),
280 VECT_VAR (vector_res, float, 16, 4));
282 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fma3_static, "");
284 #undef TEST_MSG
285 #define TEST_MSG "VFMAQ_N (FP16)"
286 clean_results ();
288 DECL_VARIABLE(vsrc_1, float, 16, 8);
289 DECL_VARIABLE(vsrc_2, float, 16, 8);
290 VECT_VAR_DECL (buf_src_1, float, 16, 8) [] = {A0, A1, A2, A3, A4, A5, A6, A7};
291 VECT_VAR_DECL (buf_src_2, float, 16, 8) [] = {B0, B1, B2, B3, B4, B5, B6, B7};
292 VLOAD (vsrc_1, buf_src_1, q, float, f, 16, 8);
293 VLOAD (vsrc_2, buf_src_2, q, float, f, 16, 8);
294 DECL_VARIABLE (vector_res, float, 16, 8)
295 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
296 VECT_VAR (vsrc_2, float, 16, 8), B0);
297 vst1q_f16 (VECT_VAR (result, float, 16, 8),
298 VECT_VAR (vector_res, float, 16, 8));
300 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma0_static, "");
302 VECT_VAR (vector_res, float, 16, 8)
303 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
304 VECT_VAR (vsrc_2, float, 16, 8), B1);
305 vst1q_f16 (VECT_VAR (result, float, 16, 8),
306 VECT_VAR (vector_res, float, 16, 8));
308 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma1_static, "");
310 VECT_VAR (vector_res, float, 16, 8)
311 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
312 VECT_VAR (vsrc_2, float, 16, 8), B2);
313 vst1q_f16 (VECT_VAR (result, float, 16, 8),
314 VECT_VAR (vector_res, float, 16, 8));
316 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma2_static, "");
318 VECT_VAR (vector_res, float, 16, 8)
319 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
320 VECT_VAR (vsrc_2, float, 16, 8), B3);
321 vst1q_f16 (VECT_VAR (result, float, 16, 8),
322 VECT_VAR (vector_res, float, 16, 8));
324 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma3_static, "");
326 VECT_VAR (vector_res, float, 16, 8)
327 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
328 VECT_VAR (vsrc_2, float, 16, 8), B4);
329 vst1q_f16 (VECT_VAR (result, float, 16, 8),
330 VECT_VAR (vector_res, float, 16, 8));
332 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma4_static, "");
334 VECT_VAR (vector_res, float, 16, 8)
335 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
336 VECT_VAR (vsrc_2, float, 16, 8), B5);
337 vst1q_f16 (VECT_VAR (result, float, 16, 8),
338 VECT_VAR (vector_res, float, 16, 8));
340 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma5_static, "");
342 VECT_VAR (vector_res, float, 16, 8)
343 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
344 VECT_VAR (vsrc_2, float, 16, 8), B6);
345 vst1q_f16 (VECT_VAR (result, float, 16, 8),
346 VECT_VAR (vector_res, float, 16, 8));
348 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma6_static, "");
350 VECT_VAR (vector_res, float, 16, 8)
351 = vfmaq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
352 VECT_VAR (vsrc_2, float, 16, 8), B7);
353 vst1q_f16 (VECT_VAR (result, float, 16, 8),
354 VECT_VAR (vector_res, float, 16, 8));
356 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fma7_static, "");
358 #undef TEST_MSG
359 #define TEST_MSG "VFMA_N (FP16)"
360 clean_results ();
362 VECT_VAR (vector_res, float, 16, 4)
363 = vfms_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
364 VECT_VAR (vsrc_2, float, 16, 4), B0);
366 vst1_f16 (VECT_VAR (result, float, 16, 4),
367 VECT_VAR (vector_res, float, 16, 4));
369 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fms0_static, "");
371 VECT_VAR (vector_res, float, 16, 4)
372 = vfms_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
373 VECT_VAR (vsrc_2, float, 16, 4), B1);
374 vst1_f16 (VECT_VAR (result, float, 16, 4),
375 VECT_VAR (vector_res, float, 16, 4));
377 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fms1_static, "");
379 VECT_VAR (vector_res, float, 16, 4)
380 = vfms_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
381 VECT_VAR (vsrc_2, float, 16, 4), B2);
382 vst1_f16 (VECT_VAR (result, float, 16, 4),
383 VECT_VAR (vector_res, float, 16, 4));
385 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fms2_static, "");
387 VECT_VAR (vector_res, float, 16, 4)
388 = vfms_n_f16 (VECT_VAR (vsrc_1, float, 16, 4),
389 VECT_VAR (vsrc_2, float, 16, 4), B3);
390 vst1_f16 (VECT_VAR (result, float, 16, 4),
391 VECT_VAR (vector_res, float, 16, 4));
393 CHECK_FP (TEST_MSG, float, 16, 4, PRIx16, expected_fms3_static, "");
395 #undef TEST_MSG
396 #define TEST_MSG "VFMAQ_N (FP16)"
397 clean_results ();
399 VECT_VAR (vector_res, float, 16, 8)
400 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
401 VECT_VAR (vsrc_2, float, 16, 8), B0);
402 vst1q_f16 (VECT_VAR (result, float, 16, 8),
403 VECT_VAR (vector_res, float, 16, 8));
405 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms0_static, "");
407 VECT_VAR (vector_res, float, 16, 8)
408 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
409 VECT_VAR (vsrc_2, float, 16, 8), B1);
410 vst1q_f16 (VECT_VAR (result, float, 16, 8),
411 VECT_VAR (vector_res, float, 16, 8));
413 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms1_static, "");
415 VECT_VAR (vector_res, float, 16, 8)
416 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
417 VECT_VAR (vsrc_2, float, 16, 8), B2);
418 vst1q_f16 (VECT_VAR (result, float, 16, 8),
419 VECT_VAR (vector_res, float, 16, 8));
421 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms2_static, "");
423 VECT_VAR (vector_res, float, 16, 8)
424 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
425 VECT_VAR (vsrc_2, float, 16, 8), B3);
426 vst1q_f16 (VECT_VAR (result, float, 16, 8),
427 VECT_VAR (vector_res, float, 16, 8));
429 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms3_static, "");
431 VECT_VAR (vector_res, float, 16, 8)
432 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
433 VECT_VAR (vsrc_2, float, 16, 8), B4);
434 vst1q_f16 (VECT_VAR (result, float, 16, 8),
435 VECT_VAR (vector_res, float, 16, 8));
437 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms4_static, "");
439 VECT_VAR (vector_res, float, 16, 8)
440 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
441 VECT_VAR (vsrc_2, float, 16, 8), B5);
442 vst1q_f16 (VECT_VAR (result, float, 16, 8),
443 VECT_VAR (vector_res, float, 16, 8));
445 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms5_static, "");
447 VECT_VAR (vector_res, float, 16, 8)
448 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
449 VECT_VAR (vsrc_2, float, 16, 8), B6);
450 vst1q_f16 (VECT_VAR (result, float, 16, 8),
451 VECT_VAR (vector_res, float, 16, 8));
453 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms6_static, "");
455 VECT_VAR (vector_res, float, 16, 8)
456 = vfmsq_n_f16 (VECT_VAR (vsrc_1, float, 16, 8),
457 VECT_VAR (vsrc_2, float, 16, 8), B7);
458 vst1q_f16 (VECT_VAR (result, float, 16, 8),
459 VECT_VAR (vector_res, float, 16, 8));
461 CHECK_FP (TEST_MSG, float, 16, 8, PRIx16, expected_fms7_static, "");
465 main (void)
467 exec_vfmas_n_f16 ();
468 return 0;