1 /* { dg-do compile { target { arm*-*-* } } } */
2 /* { dg-require-effective-target arm_v8_1m_mve_ok } */
3 /* { dg-options "-O2 -save-temps" } */
4 /* { dg-add-options arm_v8_1m_mve } */
11 void __attribute__ ((noinline
)) test (int16_t *a
, int16_t *b
, int16_t *c
, int n
)
15 mve_pred16_t p
= vctp16q (n
);
16 int16x8_t va
= vldrhq_z_s16 (a
, p
);
17 int16x8_t vb
= vldrhq_z_s16 (b
, p
);
18 int16x8_t vc
= vaddq_x_s16 (va
, vb
, p
);
19 vstrhq_p_s16 (c
, vc
, p
);
27 /* { dg-final { scan-assembler-times {\tdlstp.16} 1 } } */
28 /* { dg-final { scan-assembler-times {\tletp} 1 } } */
29 /* { dg-final { scan-assembler-not "\tvctp" } } */
30 /* { dg-final { scan-assembler-not "\tvpst" } } */
31 /* { dg-final { scan-assembler-not "p0" } } */