1 /* { dg-require-effective-target arm_hard_ok } */
2 /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
3 /* { dg-add-options arm_v8_1m_mve_fp } */
4 /* { dg-additional-options "-mfloat-abi=hard" } */
5 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */
6 
7 #include "arm_mve.h"
8 
9 float32x4_t
foo32()10 foo32 ()
11 {
12   float32x4_t b = {10.0, 12.0, 14.0, 16.0};
13   return b;
14 }
15 
16 float16x8_t
foo16()17 foo16 ()
18 {
19   float16x8_t b = {32.01};
20   return b;
21 }
22 
23 /* { dg-final { scan-assembler-times "vmov\\tq\[0-7\], q\[0-7\]" 2 } } */
24 /* { dg-final { scan-assembler-times "vstrw.32*" 1 } } */
25 /* { dg-final { scan-assembler-times "vstrh.16*" 1 } } */
26 /* { dg-final { scan-assembler-times "vldrw.32*" 1 } } */
27 /* { dg-final { scan-assembler-times "vldrh.16*" 1 } } */
28 /* { dg-final { scan-assembler-not "__ARM_undef" } } */
29