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 (int32_t *a
, int32_t *b
, int32_t *c
, int n
)
15 mve_pred16_t p
= vctp32q (n
);
16 int32x4_t va
= vldrwq_z_s32 (a
, p
);
17 int32x4_t vb
= vldrwq_z_s32 (b
, p
);
18 int32x4_t vc
= vaddq_x_s32 (va
, vb
, p
);
19 vstrwq_p_s32 (c
, vc
, p
);
27 /* { dg-final { scan-assembler-times {\tdlstp.32} 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" } } */