tree-object-size: use size_for_offset in more cases
[official-gcc.git] / gcc / testsuite / gcc.target / arm / mve / intrinsics / vmaxvq_p_u16.c
blob3cc1dbb0bbdf5cf42fbd791439faf669eb32aeaa
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 "**" "" } } */
6 #include "arm_mve.h"
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
13 **foo:
14 ** ...
15 ** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
16 ** ...
17 ** vpst(?: @.*|)
18 ** ...
19 ** vmaxvt.u16 (?:ip|fp|r[0-9]+), q[0-9]+(?: @.*|)
20 ** ...
22 uint16_t
23 foo (uint16_t a, uint16x8_t b, mve_pred16_t p)
25 return vmaxvq_p_u16 (a, b, p);
30 **foo1:
31 ** ...
32 ** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
33 ** ...
34 ** vpst(?: @.*|)
35 ** ...
36 ** vmaxvt.u16 (?:ip|fp|r[0-9]+), q[0-9]+(?: @.*|)
37 ** ...
39 uint16_t
40 foo1 (uint16_t a, uint16x8_t b, mve_pred16_t p)
42 return vmaxvq_p (a, b, p);
46 **foo2:
47 ** ...
48 ** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|)
49 ** ...
50 ** vpst(?: @.*|)
51 ** ...
52 ** vmaxvt.u16 (?:ip|fp|r[0-9]+), q[0-9]+(?: @.*|)
53 ** ...
55 uint16_t
56 foo2 (uint16x8_t b, mve_pred16_t p)
58 return vmaxvq_p (1, b, p);
61 #ifdef __cplusplus
63 #endif
65 /* { dg-final { scan-assembler-not "__ARM_undef" } } */