1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2 
3 #include "test_sve_acle.h"
4 
5 /*
6 ** rintx_f16_m_tied12:
7 **	frintx	z0\.h, p0/m, z0\.h
8 **	ret
9 */
10 TEST_UNIFORM_Z (rintx_f16_m_tied12, svfloat16_t,
11 		z0 = svrintx_f16_m (z0, p0, z0),
12 		z0 = svrintx_m (z0, p0, z0))
13 
14 /*
15 ** rintx_f16_m_tied1:
16 **	frintx	z0\.h, p0/m, z1\.h
17 **	ret
18 */
19 TEST_UNIFORM_Z (rintx_f16_m_tied1, svfloat16_t,
20 		z0 = svrintx_f16_m (z0, p0, z1),
21 		z0 = svrintx_m (z0, p0, z1))
22 
23 /*
24 ** rintx_f16_m_tied2:
25 **	mov	(z[0-9]+)\.d, z0\.d
26 **	movprfx	z0, z1
27 **	frintx	z0\.h, p0/m, \1\.h
28 **	ret
29 */
30 TEST_UNIFORM_Z (rintx_f16_m_tied2, svfloat16_t,
31 		z0 = svrintx_f16_m (z1, p0, z0),
32 		z0 = svrintx_m (z1, p0, z0))
33 
34 /*
35 ** rintx_f16_m_untied:
36 **	movprfx	z0, z2
37 **	frintx	z0\.h, p0/m, z1\.h
38 **	ret
39 */
40 TEST_UNIFORM_Z (rintx_f16_m_untied, svfloat16_t,
41 		z0 = svrintx_f16_m (z2, p0, z1),
42 		z0 = svrintx_m (z2, p0, z1))
43 
44 /*
45 ** rintx_f16_z_tied1:
46 **	mov	(z[0-9]+)\.d, z0\.d
47 **	movprfx	z0\.h, p0/z, \1\.h
48 **	frintx	z0\.h, p0/m, \1\.h
49 **	ret
50 */
51 TEST_UNIFORM_Z (rintx_f16_z_tied1, svfloat16_t,
52 		z0 = svrintx_f16_z (p0, z0),
53 		z0 = svrintx_z (p0, z0))
54 
55 /*
56 ** rintx_f16_z_untied:
57 **	movprfx	z0\.h, p0/z, z1\.h
58 **	frintx	z0\.h, p0/m, z1\.h
59 **	ret
60 */
61 TEST_UNIFORM_Z (rintx_f16_z_untied, svfloat16_t,
62 		z0 = svrintx_f16_z (p0, z1),
63 		z0 = svrintx_z (p0, z1))
64 
65 /*
66 ** rintx_f16_x_tied1:
67 **	frintx	z0\.h, p0/m, z0\.h
68 **	ret
69 */
70 TEST_UNIFORM_Z (rintx_f16_x_tied1, svfloat16_t,
71 		z0 = svrintx_f16_x (p0, z0),
72 		z0 = svrintx_x (p0, z0))
73 
74 /*
75 ** rintx_f16_x_untied:
76 **	movprfx	z0, z1
77 **	frintx	z0\.h, p0/m, z1\.h
78 **	ret
79 */
80 TEST_UNIFORM_Z (rintx_f16_x_untied, svfloat16_t,
81 		z0 = svrintx_f16_x (p0, z1),
82 		z0 = svrintx_x (p0, z1))
83 
84 /*
85 ** ptrue_rintx_f16_x_tied1:
86 **	...
87 **	ptrue	p[0-9]+\.b[^\n]*
88 **	...
89 **	ret
90 */
91 TEST_UNIFORM_Z (ptrue_rintx_f16_x_tied1, svfloat16_t,
92 		z0 = svrintx_f16_x (svptrue_b16 (), z0),
93 		z0 = svrintx_x (svptrue_b16 (), z0))
94 
95 /*
96 ** ptrue_rintx_f16_x_untied:
97 **	...
98 **	ptrue	p[0-9]+\.b[^\n]*
99 **	...
100 **	ret
101 */
102 TEST_UNIFORM_Z (ptrue_rintx_f16_x_untied, svfloat16_t,
103 		z0 = svrintx_f16_x (svptrue_b16 (), z1),
104 		z0 = svrintx_x (svptrue_b16 (), z1))
105