1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2 
3 #include "test_sve_acle.h"
4 
5 /*
6 ** abs_f64_m_tied12:
7 **	fabs	z0\.d, p0/m, z0\.d
8 **	ret
9 */
10 TEST_UNIFORM_Z (abs_f64_m_tied12, svfloat64_t,
11 		z0 = svabs_f64_m (z0, p0, z0),
12 		z0 = svabs_m (z0, p0, z0))
13 
14 /*
15 ** abs_f64_m_tied1:
16 **	fabs	z0\.d, p0/m, z1\.d
17 **	ret
18 */
19 TEST_UNIFORM_Z (abs_f64_m_tied1, svfloat64_t,
20 		z0 = svabs_f64_m (z0, p0, z1),
21 		z0 = svabs_m (z0, p0, z1))
22 
23 /*
24 ** abs_f64_m_tied2:
25 **	mov	(z[0-9]+\.d), z0\.d
26 **	movprfx	z0, z1
27 **	fabs	z0\.d, p0/m, \1
28 **	ret
29 */
30 TEST_UNIFORM_Z (abs_f64_m_tied2, svfloat64_t,
31 		z0 = svabs_f64_m (z1, p0, z0),
32 		z0 = svabs_m (z1, p0, z0))
33 
34 /*
35 ** abs_f64_m_untied:
36 **	movprfx	z0, z2
37 **	fabs	z0\.d, p0/m, z1\.d
38 **	ret
39 */
40 TEST_UNIFORM_Z (abs_f64_m_untied, svfloat64_t,
41 		z0 = svabs_f64_m (z2, p0, z1),
42 		z0 = svabs_m (z2, p0, z1))
43 
44 /*
45 ** abs_f64_z_tied1:
46 **	mov	(z[0-9]+\.d), z0\.d
47 **	movprfx	z0\.d, p0/z, \1
48 **	fabs	z0\.d, p0/m, \1
49 **	ret
50 */
51 TEST_UNIFORM_Z (abs_f64_z_tied1, svfloat64_t,
52 		z0 = svabs_f64_z (p0, z0),
53 		z0 = svabs_z (p0, z0))
54 
55 /*
56 ** abs_f64_z_untied:
57 **	movprfx	z0\.d, p0/z, z1\.d
58 **	fabs	z0\.d, p0/m, z1\.d
59 **	ret
60 */
61 TEST_UNIFORM_Z (abs_f64_z_untied, svfloat64_t,
62 		z0 = svabs_f64_z (p0, z1),
63 		z0 = svabs_z (p0, z1))
64 
65 /*
66 ** abs_f64_x_tied1:
67 **	fabs	z0\.d, p0/m, z0\.d
68 **	ret
69 */
70 TEST_UNIFORM_Z (abs_f64_x_tied1, svfloat64_t,
71 		z0 = svabs_f64_x (p0, z0),
72 		z0 = svabs_x (p0, z0))
73 
74 /*
75 ** abs_f64_x_untied:
76 **	fabs	z0\.d, p0/m, z1\.d
77 **	ret
78 */
79 TEST_UNIFORM_Z (abs_f64_x_untied, svfloat64_t,
80 		z0 = svabs_f64_x (p0, z1),
81 		z0 = svabs_x (p0, z1))
82 
83 /*
84 ** ptrue_abs_f64_x_tied1:
85 **	...
86 **	ptrue	p[0-9]+\.b[^\n]*
87 **	...
88 **	ret
89 */
90 TEST_UNIFORM_Z (ptrue_abs_f64_x_tied1, svfloat64_t,
91 		z0 = svabs_f64_x (svptrue_b64 (), z0),
92 		z0 = svabs_x (svptrue_b64 (), z0))
93 
94 /*
95 ** ptrue_abs_f64_x_untied:
96 **	...
97 **	ptrue	p[0-9]+\.b[^\n]*
98 **	...
99 **	ret
100 */
101 TEST_UNIFORM_Z (ptrue_abs_f64_x_untied, svfloat64_t,
102 		z0 = svabs_f64_x (svptrue_b64 (), z1),
103 		z0 = svabs_x (svptrue_b64 (), z1))
104