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