1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
7 /* { dg-final { scan-assembler-times "\\tfmax\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */
10 test_vmax_f32 (float32x2_t __a
, float32x2_t __b
)
12 return vmax_f32(__a
, __b
);
15 /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */
18 test_vmax_s8 (int8x8_t __a
, int8x8_t __b
)
20 return vmax_s8(__a
, __b
);
23 /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */
26 test_vmax_u8 (uint8x8_t __a
, uint8x8_t __b
)
28 return vmax_u8(__a
, __b
);
31 /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */
34 test_vmax_s16 (int16x4_t __a
, int16x4_t __b
)
36 return vmax_s16(__a
, __b
);
39 /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */
42 test_vmax_u16 (uint16x4_t __a
, uint16x4_t __b
)
44 return vmax_u16(__a
, __b
);
47 /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */
50 test_vmax_s32 (int32x2_t __a
, int32x2_t __b
)
52 return vmax_s32(__a
, __b
);
55 /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */
58 test_vmax_u32 (uint32x2_t __a
, uint32x2_t __b
)
60 return vmax_u32(__a
, __b
);
63 /* { dg-final { scan-assembler-times "\\tfmax\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */
66 test_vmaxq_f32 (float32x4_t __a
, float32x4_t __b
)
68 return vmaxq_f32(__a
, __b
);
71 /* { dg-final { scan-assembler-times "\\tfmax\\tv\[0-9\]+\.2d, v\[0-9\].2d, v\[0-9\].2d" 1 } } */
74 test_vmaxq_f64 (float64x2_t __a
, float64x2_t __b
)
76 return vmaxq_f64(__a
, __b
);
79 /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */
82 test_vmaxq_s8 (int8x16_t __a
, int8x16_t __b
)
84 return vmaxq_s8(__a
, __b
);
87 /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */
90 test_vmaxq_u8 (uint8x16_t __a
, uint8x16_t __b
)
92 return vmaxq_u8(__a
, __b
);
95 /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */
98 test_vmaxq_s16 (int16x8_t __a
, int16x8_t __b
)
100 return vmaxq_s16(__a
, __b
);
103 /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */
106 test_vmaxq_u16 (uint16x8_t __a
, uint16x8_t __b
)
108 return vmaxq_u16(__a
, __b
);
111 /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */
114 test_vmaxq_s32 (int32x4_t __a
, int32x4_t __b
)
116 return vmaxq_s32(__a
, __b
);
119 /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */
122 test_vmaxq_u32 (uint32x4_t __a
, uint32x4_t __b
)
124 return vmaxq_u32(__a
, __b
);
127 /* { dg-final { scan-assembler-times "\\tfmin\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */
130 test_vmin_f32 (float32x2_t __a
, float32x2_t __b
)
132 return vmin_f32(__a
, __b
);
135 /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */
138 test_vmin_s8 (int8x8_t __a
, int8x8_t __b
)
140 return vmin_s8(__a
, __b
);
143 /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */
146 test_vmin_u8 (uint8x8_t __a
, uint8x8_t __b
)
148 return vmin_u8(__a
, __b
);
151 /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */
154 test_vmin_s16 (int16x4_t __a
, int16x4_t __b
)
156 return vmin_s16(__a
, __b
);
159 /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */
162 test_vmin_u16 (uint16x4_t __a
, uint16x4_t __b
)
164 return vmin_u16(__a
, __b
);
167 /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */
170 test_vmin_s32 (int32x2_t __a
, int32x2_t __b
)
172 return vmin_s32(__a
, __b
);
175 /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */
178 test_vmin_u32 (uint32x2_t __a
, uint32x2_t __b
)
180 return vmin_u32(__a
, __b
);
183 /* { dg-final { scan-assembler-times "\\tfmin\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */
186 test_vminq_f32 (float32x4_t __a
, float32x4_t __b
)
188 return vminq_f32(__a
, __b
);
191 /* { dg-final { scan-assembler-times "\\tfmin\\tv\[0-9\]+\.2d, v\[0-9\].2d, v\[0-9\].2d" 1 } } */
194 test_vminq_f64 (float64x2_t __a
, float64x2_t __b
)
196 return vminq_f64(__a
, __b
);
199 /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */
202 test_vminq_s8 (int8x16_t __a
, int8x16_t __b
)
204 return vminq_s8(__a
, __b
);
207 /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */
210 test_vminq_u8 (uint8x16_t __a
, uint8x16_t __b
)
212 return vminq_u8(__a
, __b
);
215 /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */
218 test_vminq_s16 (int16x8_t __a
, int16x8_t __b
)
220 return vminq_s16(__a
, __b
);
223 /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */
226 test_vminq_u16 (uint16x8_t __a
, uint16x8_t __b
)
228 return vminq_u16(__a
, __b
);
231 /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */
234 test_vminq_s32 (int32x4_t __a
, int32x4_t __b
)
236 return vminq_s32(__a
, __b
);
239 /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */
242 test_vminq_u32 (uint32x4_t __a
, uint32x4_t __b
)
244 return vminq_u32(__a
, __b
);
247 /* { dg-final { scan-assembler-times "\\taddp\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 2 } } */
250 test_vpadd_s8 (int8x8_t __a
, int8x8_t __b
)
252 return vpadd_s8(__a
, __b
);
256 test_vpadd_u8 (uint8x8_t __a
, uint8x8_t __b
)
258 return vpadd_u8(__a
, __b
);
261 /* { dg-final { scan-assembler-times "\\taddp\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 2 } } */
264 test_vpadd_s16 (int16x4_t __a
, int16x4_t __b
)
266 return vpadd_s16(__a
, __b
);
270 test_vpadd_u16 (uint16x4_t __a
, uint16x4_t __b
)
272 return vpadd_u16(__a
, __b
);
275 /* { dg-final { scan-assembler-times "\\taddp\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 2 } } */
278 test_vpadd_s32 (int32x2_t __a
, int32x2_t __b
)
280 return vpadd_s32(__a
, __b
);
284 test_vpadd_u32 (uint32x2_t __a
, uint32x2_t __b
)
286 return vpadd_u32(__a
, __b
);
289 /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.4h" 1 } } */
292 test_vqdmlal_s16 (int32x4_t __a
, int16x4_t __b
, int16x4_t __c
)
294 return vqdmlal_s16 (__a
, __b
, __c
);
297 /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.8h" 1 } } */
300 test_vqdmlal_high_s16 (int32x4_t __a
, int16x8_t __b
, int16x8_t __c
)
302 return vqdmlal_high_s16 (__a
, __b
, __c
);
305 /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.h" 3 } } */
308 test_vqdmlal_high_lane_s16 (int32x4_t a
, int16x8_t b
, int16x4_t c
)
310 return vqdmlal_high_lane_s16 (a
, b
, c
, 3);
314 test_vqdmlal_high_laneq_s16 (int32x4_t a
, int16x8_t b
, int16x8_t c
)
316 return vqdmlal_high_laneq_s16 (a
, b
, c
, 6);
320 test_vqdmlal_high_n_s16 (int32x4_t __a
, int16x8_t __b
, int16_t __c
)
322 return vqdmlal_high_n_s16 (__a
, __b
, __c
);
325 /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.h" 3 } } */
328 test_vqdmlal_lane_s16 (int32x4_t a
, int16x4_t b
, int16x4_t c
)
330 return vqdmlal_lane_s16 (a
, b
, c
, 3);
334 test_vqdmlal_laneq_s16 (int32x4_t a
, int16x4_t b
, int16x8_t c
)
336 return vqdmlal_laneq_s16 (a
, b
, c
, 6);
340 test_vqdmlal_n_s16 (int32x4_t __a
, int16x4_t __b
, int16_t __c
)
342 return vqdmlal_n_s16 (__a
, __b
, __c
);
345 /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.2s" 1 } } */
348 test_vqdmlal_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
)
350 return vqdmlal_s32 (__a
, __b
, __c
);
353 /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.4s" 1 } } */
356 test_vqdmlal_high_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
)
358 return vqdmlal_high_s32 (__a
, __b
, __c
);
361 /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.s" 3 } } */
364 test_vqdmlal_high_lane_s32 (int64x2_t __a
, int32x4_t __b
, int32x2_t __c
)
366 return vqdmlal_high_lane_s32 (__a
, __b
, __c
, 1);
370 test_vqdmlal_high_laneq_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
)
372 return vqdmlal_high_laneq_s32 (__a
, __b
, __c
, 3);
376 test_vqdmlal_high_n_s32 (int64x2_t __a
, int32x4_t __b
, int32_t __c
)
378 return vqdmlal_high_n_s32 (__a
, __b
, __c
);
381 /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.s" 3 } } */
384 test_vqdmlal_lane_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
)
386 return vqdmlal_lane_s32 (__a
, __b
, __c
, 1);
390 test_vqdmlal_laneq_s32 (int64x2_t __a
, int32x2_t __b
, int32x4_t __c
)
392 return vqdmlal_laneq_s32 (__a
, __b
, __c
, 3);
396 test_vqdmlal_n_s32 (int64x2_t __a
, int32x2_t __b
, int32_t __c
)
398 return vqdmlal_n_s32 (__a
, __b
, __c
);
401 /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.4h" 1 } } */
404 test_vqdmlsl_s16 (int32x4_t __a
, int16x4_t __b
, int16x4_t __c
)
406 return vqdmlsl_s16 (__a
, __b
, __c
);
409 /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.8h" 1 } } */
412 test_vqdmlsl_high_s16 (int32x4_t __a
, int16x8_t __b
, int16x8_t __c
)
414 return vqdmlsl_high_s16 (__a
, __b
, __c
);
417 /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.h" 3 } } */
420 test_vqdmlsl_high_lane_s16 (int32x4_t a
, int16x8_t b
, int16x4_t c
)
422 return vqdmlsl_high_lane_s16 (a
, b
, c
, 3);
426 test_vqdmlsl_high_laneq_s16 (int32x4_t a
, int16x8_t b
, int16x8_t c
)
428 return vqdmlsl_high_laneq_s16 (a
, b
, c
, 6);
432 test_vqdmlsl_high_n_s16 (int32x4_t __a
, int16x8_t __b
, int16_t __c
)
434 return vqdmlsl_high_n_s16 (__a
, __b
, __c
);
437 /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.h" 3 } } */
440 test_vqdmlsl_lane_s16 (int32x4_t a
, int16x4_t b
, int16x4_t c
)
442 return vqdmlsl_lane_s16 (a
, b
, c
, 3);
446 test_vqdmlsl_laneq_s16 (int32x4_t a
, int16x4_t b
, int16x8_t c
)
448 return vqdmlsl_laneq_s16 (a
, b
, c
, 6);
452 test_vqdmlsl_n_s16 (int32x4_t __a
, int16x4_t __b
, int16_t __c
)
454 return vqdmlsl_n_s16 (__a
, __b
, __c
);
457 /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.2s" 1 } } */
460 test_vqdmlsl_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
)
462 return vqdmlsl_s32 (__a
, __b
, __c
);
465 /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.4s" 1 } } */
468 test_vqdmlsl_high_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
)
470 return vqdmlsl_high_s32 (__a
, __b
, __c
);
473 /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.s" 3 } } */
476 test_vqdmlsl_high_lane_s32 (int64x2_t __a
, int32x4_t __b
, int32x2_t __c
)
478 return vqdmlsl_high_lane_s32 (__a
, __b
, __c
, 1);
482 test_vqdmlsl_high_laneq_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
)
484 return vqdmlsl_high_laneq_s32 (__a
, __b
, __c
, 3);
488 test_vqdmlsl_high_n_s32 (int64x2_t __a
, int32x4_t __b
, int32_t __c
)
490 return vqdmlsl_high_n_s32 (__a
, __b
, __c
);
493 /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.s" 3 } } */
496 test_vqdmlsl_lane_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
)
498 return vqdmlsl_lane_s32 (__a
, __b
, __c
, 1);
502 test_vqdmlsl_laneq_s32 (int64x2_t __a
, int32x2_t __b
, int32x4_t __c
)
504 return vqdmlsl_laneq_s32 (__a
, __b
, __c
, 3);
508 test_vqdmlsl_n_s32 (int64x2_t __a
, int32x2_t __b
, int32_t __c
)
510 return vqdmlsl_n_s32 (__a
, __b
, __c
);
513 /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.4h" 1 } } */
516 test_vqdmull_s16 (int16x4_t __a
, int16x4_t __b
)
518 return vqdmull_s16 (__a
, __b
);
521 /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.8h" 1 } } */
524 test_vqdmull_high_s16 (int16x8_t __a
, int16x8_t __b
)
526 return vqdmull_high_s16 (__a
, __b
);
529 /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.h" 3 } } */
532 test_vqdmull_high_lane_s16 (int16x8_t a
, int16x4_t b
)
534 return vqdmull_high_lane_s16 (a
, b
, 3);
538 test_vqdmull_high_laneq_s16 (int16x8_t a
, int16x8_t b
)
540 return vqdmull_high_laneq_s16 (a
, b
, 6);
544 test_vqdmull_high_n_s16 (int16x8_t __a
, int16_t __b
)
546 return vqdmull_high_n_s16 (__a
, __b
);
549 /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.h" 3 } } */
552 test_vqdmull_lane_s16 (int16x4_t a
, int16x4_t b
)
554 return vqdmull_lane_s16 (a
, b
, 3);
558 test_vqdmull_laneq_s16 (int16x4_t a
, int16x8_t b
)
560 return vqdmull_laneq_s16 (a
, b
, 6);
564 test_vqdmull_n_s16 (int16x4_t __a
, int16_t __b
)
566 return vqdmull_n_s16 (__a
, __b
);
569 /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.2s" 1 } } */
572 test_vqdmull_s32 (int32x2_t __a
, int32x2_t __b
)
574 return vqdmull_s32 (__a
, __b
);
577 /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.4s" 1 } } */
580 test_vqdmull_high_s32 (int32x4_t __a
, int32x4_t __b
)
582 return vqdmull_high_s32 (__a
, __b
);
585 /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.s" 3 } } */
588 test_vqdmull_high_lane_s32 (int32x4_t __a
, int32x2_t __b
)
590 return vqdmull_high_lane_s32 (__a
, __b
, 1);
594 test_vqdmull_high_laneq_s32 (int32x4_t __a
, int32x4_t __b
)
596 return vqdmull_high_laneq_s32 (__a
, __b
, 3);
600 test_vqdmull_high_n_s32 (int32x4_t __a
, int32_t __b
)
602 return vqdmull_high_n_s32 (__a
, __b
);
605 /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.s" 3 } } */
608 test_vqdmull_lane_s32 (int32x2_t __a
, int32x2_t __b
)
610 return vqdmull_lane_s32 (__a
, __b
, 1);
614 test_vqdmull_laneq_s32 (int32x2_t __a
, int32x4_t __b
)
616 return vqdmull_laneq_s32 (__a
, __b
, 1);
620 test_vqdmull_n_s32 (int32x2_t __a
, int32_t __b
)
622 return vqdmull_n_s32 (__a
, __b
);
625 /* { dg-final { scan-assembler-times "\\tsshll\\tv\[0-9\]+\.2d" 1 } } */
628 test_vshll_n_s32 (int32x2_t __a
)
630 return vshll_n_s32 (__a
, 9);
633 /* { dg-final { scan-assembler-times "\\tushll\\tv\[0-9\]+\.2d" 1 } } */
636 test_vshll_n_u32 (uint32x2_t __a
)
638 return vshll_n_u32 (__a
, 9);
641 /* { dg-final { scan-assembler-times "\\tshll\\tv\[0-9\]+\.2d" 2 } } */
644 test_vshll_n_s32_2 (int32x2_t __a
)
646 return vshll_n_s32 (__a
, 32);
650 test_vshll_n_u32_2 (uint32x2_t __a
)
652 return vshll_n_u32 (__a
, 32);
655 /* { dg-final { scan-assembler-times "\\tsshll\\tv\[0-9\]+\.4s" 1 } } */
658 test_vshll_n_s16 (int16x4_t __a
)
660 return vshll_n_s16 (__a
, 3);
663 /* { dg-final { scan-assembler-times "\\tushll\\tv\[0-9\]+\.4s" 1 } } */
666 test_vshll_n_u16 (uint16x4_t __a
)
668 return vshll_n_u16 (__a
, 3);
671 /* { dg-final { scan-assembler-times "\\tshll\\tv\[0-9\]+\.4s" 2 } } */
674 test_vshll_n_s16_2 (int16x4_t __a
)
676 return vshll_n_s16 (__a
, 16);
680 test_vshll_n_u16_2 (uint16x4_t __a
)
682 return vshll_n_u16 (__a
, 16);
685 /* { dg-final { scan-assembler-times "\\tsshll\\tv\[0-9\]+\.8h" 1 } } */
688 test_vshll_n_s8 (int8x8_t __a
)
690 return vshll_n_s8 (__a
, 3);
693 /* { dg-final { scan-assembler-times "\\tushll\\tv\[0-9\]+\.8h" 1 } } */
696 test_vshll_n_u8 (uint8x8_t __a
)
698 return vshll_n_u8 (__a
, 3);
701 /* { dg-final { scan-assembler-times "\\tshll\\tv\[0-9\]+\.8h" 2 } } */
704 test_vshll_n_s8_2 (int8x8_t __a
)
706 return vshll_n_s8 (__a
, 8);
710 test_vshll_n_u8_2 (uint8x8_t __a
)
712 return vshll_n_u8 (__a
, 8);
715 /* { dg-final { scan-assembler-times "\\tsshll2\\tv\[0-9\]+\.2d" 1 } } */
718 test_vshll_high_n_s32 (int32x4_t __a
)
720 return vshll_high_n_s32 (__a
, 9);
723 /* { dg-final { scan-assembler-times "\\tushll2\\tv\[0-9\]+\.2d" 1 } } */
726 test_vshll_high_n_u32 (uint32x4_t __a
)
728 return vshll_high_n_u32 (__a
, 9);
731 /* { dg-final { scan-assembler-times "\\tshll2\\tv\[0-9\]+\.2d" 2 } } */
734 test_vshll_high_n_s32_2 (int32x4_t __a
)
736 return vshll_high_n_s32 (__a
, 32);
740 test_vshll_high_n_u32_2 (uint32x4_t __a
)
742 return vshll_high_n_u32 (__a
, 32);
745 /* { dg-final { scan-assembler-times "\\tsshll2\\tv\[0-9\]+\.4s" 1 } } */
748 test_vshll_high_n_s16 (int16x8_t __a
)
750 return vshll_high_n_s16 (__a
, 3);
753 /* { dg-final { scan-assembler-times "\\tushll2\\tv\[0-9\]+\.4s" 1 } } */
756 test_vshll_high_n_u16 (uint16x8_t __a
)
758 return vshll_high_n_u16 (__a
, 3);
761 /* { dg-final { scan-assembler-times "\\tshll2\\tv\[0-9\]+\.4s" 2 } } */
764 test_vshll_high_n_s16_2 (int16x8_t __a
)
766 return vshll_high_n_s16 (__a
, 16);
770 test_vshll_high_n_u16_2 (uint16x8_t __a
)
772 return vshll_high_n_u16 (__a
, 16);
775 /* { dg-final { scan-assembler-times "\\tsshll2\\tv\[0-9\]+\.8h" 1 } } */
778 test_vshll_high_n_s8 (int8x16_t __a
)
780 return vshll_high_n_s8 (__a
, 3);
783 /* { dg-final { scan-assembler-times "\\tushll2\\tv\[0-9\]+\.8h" 1 } } */
786 test_vshll_high_n_u8 (uint8x16_t __a
)
788 return vshll_high_n_u8 (__a
, 3);
791 /* { dg-final { scan-assembler-times "\\tshll2\\tv\[0-9\]+\.8h" 2 } } */
794 test_vshll_high_n_s8_2 (int8x16_t __a
)
796 return vshll_high_n_s8 (__a
, 8);
800 test_vshll_high_n_u8_2 (uint8x16_t __a
)
802 return vshll_high_n_u8 (__a
, 8);