1 /* { dg-require-effective-target arm_v8_1m_mve_ok } */
2 /* { dg-add-options arm_v8_1m_mve } */
3 /* { dg-additional-options "-O2" } */
4 /* { dg-final { check-function-bodies "**" "" } } */
15 ** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
19 ** vmaxvt.u16 (?:ip|fp|r[0-9]+), q[0-9]+(?: @.*|)
23 foo (uint16_t a
, uint16x8_t b
, mve_pred16_t p
)
25 return vmaxvq_p_u16 (a
, b
, p
);
32 ** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
36 ** vmaxvt.u16 (?:ip|fp|r[0-9]+), q[0-9]+(?: @.*|)
40 foo1 (uint16_t a
, uint16x8_t b
, mve_pred16_t p
)
42 return vmaxvq_p (a
, b
, p
);
48 ** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
52 ** vmaxvt.u16 (?:ip|fp|r[0-9]+), q[0-9]+(?: @.*|)
56 foo2 (uint16x8_t b
, mve_pred16_t p
)
58 return vmaxvq_p (1, b
, p
);
65 /* { dg-final { scan-assembler-not "__ARM_undef" } } */