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*-*-* } } */
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)
242 #define TEST_MSG "VFMA_N (FP16)"
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
, "");
285 #define TEST_MSG "VFMAQ_N (FP16)"
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
, "");
359 #define TEST_MSG "VFMA_N (FP16)"
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
, "");
396 #define TEST_MSG "VFMAQ_N (FP16)"
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
, "");