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" } */
16 #define MACRO_VCVT_NAME(__to1,__from1) \
17 vcvtq_n_##__to1 ## _ ##__from1
19 #define MACRO_VCVT_NAME_P(__to1,__from1) \
20 vcvtq_m_n_##__to1 ## _ ##__from1
22 #define VCVT_TEST(to,from,val) \
23 to = MACRO_VCVT_NAME(to,from) (from, val); \
24 to = MACRO_VCVT_NAME_P(to,from) (to, from, val, p);
26 #define VQSHRN_TEST(to,from,val) \
27 to = vqshrnbq (to, from, val); \
28 to = vqshrntq (to, from, val); \
29 to = vqshrnbq_m (to, from, val, p); \
30 to = vqshrntq_m (to, from, val, p); \
32 #define VQSHRUN_TEST(to,from,val) \
33 to = vqshrunbq (to, from, val); \
34 to = vqshruntq (to, from, val); \
35 to = vqshrunbq_m (to, from, val, p); \
36 to = vqshruntq_m (to, from, val, p); \
38 void test (mve_pred16_t p)
56 VQSHRN_TEST(u8
, u16
, 8)
57 VQSHRN_TEST(s8
, s16
, 8)
58 VQSHRN_TEST(u16
, u32
, 16)
59 VQSHRN_TEST(s16
, s32
, 16)
60 VQSHRUN_TEST(u8
, s16
, 8)
61 VQSHRUN_TEST(u16
, s32
, 16)