1 /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
2 /* { dg-add-options arm_v8_1m_mve_fp } */
3 /* { dg-additional-options "-O2" } */
4
5 #include "arm_mve.h"
6
7 float16_t
foo(float16_t a,float16x8_t b,mve_pred16_t p)8 foo (float16_t a, float16x8_t b, mve_pred16_t p)
9 {
10 return vmaxnmvq_p_f16 (a, b, p);
11 }
12
13
14 float16_t
foo1(float16_t a,float16x8_t b,mve_pred16_t p)15 foo1 (float16_t a, float16x8_t b, mve_pred16_t p)
16 {
17 return vmaxnmvq_p (a, b, p);
18 }
19
20
21 float16_t
foo2(float32_t a,float16x8_t b,mve_pred16_t p)22 foo2 (float32_t a, float16x8_t b, mve_pred16_t p)
23 {
24 return vmaxnmvq_p (a, b, p);
25 }
26
27 /* { dg-final { scan-assembler-not "__ARM_undef" } } */
28 /* { dg-final { scan-assembler-times "vmaxnmvt.f16" 3 } } */
29