]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rshr_u32.c
[AArch64] Add support for the SVE2 ACLE
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve2 / acle / asm / rshr_u32.c
1 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
2
3 #include "test_sve_acle.h"
4
5 /*
6 ** rshr_1_u32_m_tied1:
7 ** urshr z0\.s, p0/m, z0\.s, #1
8 ** ret
9 */
10 TEST_UNIFORM_Z (rshr_1_u32_m_tied1, svuint32_t,
11 z0 = svrshr_n_u32_m (p0, z0, 1),
12 z0 = svrshr_m (p0, z0, 1))
13
14 /*
15 ** rshr_1_u32_m_untied:
16 ** movprfx z0, z1
17 ** urshr z0\.s, p0/m, z0\.s, #1
18 ** ret
19 */
20 TEST_UNIFORM_Z (rshr_1_u32_m_untied, svuint32_t,
21 z0 = svrshr_n_u32_m (p0, z1, 1),
22 z0 = svrshr_m (p0, z1, 1))
23
24 /*
25 ** rshr_2_u32_m_tied1:
26 ** urshr z0\.s, p0/m, z0\.s, #2
27 ** ret
28 */
29 TEST_UNIFORM_Z (rshr_2_u32_m_tied1, svuint32_t,
30 z0 = svrshr_n_u32_m (p0, z0, 2),
31 z0 = svrshr_m (p0, z0, 2))
32
33 /*
34 ** rshr_2_u32_m_untied:
35 ** movprfx z0, z1
36 ** urshr z0\.s, p0/m, z0\.s, #2
37 ** ret
38 */
39 TEST_UNIFORM_Z (rshr_2_u32_m_untied, svuint32_t,
40 z0 = svrshr_n_u32_m (p0, z1, 2),
41 z0 = svrshr_m (p0, z1, 2))
42
43 /*
44 ** rshr_32_u32_m_tied1:
45 ** urshr z0\.s, p0/m, z0\.s, #32
46 ** ret
47 */
48 TEST_UNIFORM_Z (rshr_32_u32_m_tied1, svuint32_t,
49 z0 = svrshr_n_u32_m (p0, z0, 32),
50 z0 = svrshr_m (p0, z0, 32))
51
52 /*
53 ** rshr_32_u32_m_untied:
54 ** movprfx z0, z1
55 ** urshr z0\.s, p0/m, z0\.s, #32
56 ** ret
57 */
58 TEST_UNIFORM_Z (rshr_32_u32_m_untied, svuint32_t,
59 z0 = svrshr_n_u32_m (p0, z1, 32),
60 z0 = svrshr_m (p0, z1, 32))
61
62 /*
63 ** rshr_1_u32_z_tied1:
64 ** movprfx z0\.s, p0/z, z0\.s
65 ** urshr z0\.s, p0/m, z0\.s, #1
66 ** ret
67 */
68 TEST_UNIFORM_Z (rshr_1_u32_z_tied1, svuint32_t,
69 z0 = svrshr_n_u32_z (p0, z0, 1),
70 z0 = svrshr_z (p0, z0, 1))
71
72 /*
73 ** rshr_1_u32_z_untied:
74 ** movprfx z0\.s, p0/z, z1\.s
75 ** urshr z0\.s, p0/m, z0\.s, #1
76 ** ret
77 */
78 TEST_UNIFORM_Z (rshr_1_u32_z_untied, svuint32_t,
79 z0 = svrshr_n_u32_z (p0, z1, 1),
80 z0 = svrshr_z (p0, z1, 1))
81
82 /*
83 ** rshr_2_u32_z_tied1:
84 ** movprfx z0\.s, p0/z, z0\.s
85 ** urshr z0\.s, p0/m, z0\.s, #2
86 ** ret
87 */
88 TEST_UNIFORM_Z (rshr_2_u32_z_tied1, svuint32_t,
89 z0 = svrshr_n_u32_z (p0, z0, 2),
90 z0 = svrshr_z (p0, z0, 2))
91
92 /*
93 ** rshr_2_u32_z_untied:
94 ** movprfx z0\.s, p0/z, z1\.s
95 ** urshr z0\.s, p0/m, z0\.s, #2
96 ** ret
97 */
98 TEST_UNIFORM_Z (rshr_2_u32_z_untied, svuint32_t,
99 z0 = svrshr_n_u32_z (p0, z1, 2),
100 z0 = svrshr_z (p0, z1, 2))
101
102 /*
103 ** rshr_32_u32_z_tied1:
104 ** movprfx z0\.s, p0/z, z0\.s
105 ** urshr z0\.s, p0/m, z0\.s, #32
106 ** ret
107 */
108 TEST_UNIFORM_Z (rshr_32_u32_z_tied1, svuint32_t,
109 z0 = svrshr_n_u32_z (p0, z0, 32),
110 z0 = svrshr_z (p0, z0, 32))
111
112 /*
113 ** rshr_32_u32_z_untied:
114 ** movprfx z0\.s, p0/z, z1\.s
115 ** urshr z0\.s, p0/m, z0\.s, #32
116 ** ret
117 */
118 TEST_UNIFORM_Z (rshr_32_u32_z_untied, svuint32_t,
119 z0 = svrshr_n_u32_z (p0, z1, 32),
120 z0 = svrshr_z (p0, z1, 32))
121
122 /*
123 ** rshr_1_u32_x_tied1:
124 ** urshr z0\.s, p0/m, z0\.s, #1
125 ** ret
126 */
127 TEST_UNIFORM_Z (rshr_1_u32_x_tied1, svuint32_t,
128 z0 = svrshr_n_u32_x (p0, z0, 1),
129 z0 = svrshr_x (p0, z0, 1))
130
131 /*
132 ** rshr_1_u32_x_untied:
133 ** movprfx z0, z1
134 ** urshr z0\.s, p0/m, z0\.s, #1
135 ** ret
136 */
137 TEST_UNIFORM_Z (rshr_1_u32_x_untied, svuint32_t,
138 z0 = svrshr_n_u32_x (p0, z1, 1),
139 z0 = svrshr_x (p0, z1, 1))
140
141 /*
142 ** rshr_2_u32_x_tied1:
143 ** urshr z0\.s, p0/m, z0\.s, #2
144 ** ret
145 */
146 TEST_UNIFORM_Z (rshr_2_u32_x_tied1, svuint32_t,
147 z0 = svrshr_n_u32_x (p0, z0, 2),
148 z0 = svrshr_x (p0, z0, 2))
149
150 /*
151 ** rshr_2_u32_x_untied:
152 ** movprfx z0, z1
153 ** urshr z0\.s, p0/m, z0\.s, #2
154 ** ret
155 */
156 TEST_UNIFORM_Z (rshr_2_u32_x_untied, svuint32_t,
157 z0 = svrshr_n_u32_x (p0, z1, 2),
158 z0 = svrshr_x (p0, z1, 2))
159
160 /*
161 ** rshr_32_u32_x_tied1:
162 ** urshr z0\.s, p0/m, z0\.s, #32
163 ** ret
164 */
165 TEST_UNIFORM_Z (rshr_32_u32_x_tied1, svuint32_t,
166 z0 = svrshr_n_u32_x (p0, z0, 32),
167 z0 = svrshr_x (p0, z0, 32))
168
169 /*
170 ** rshr_32_u32_x_untied:
171 ** movprfx z0, z1
172 ** urshr z0\.s, p0/m, z0\.s, #32
173 ** ret
174 */
175 TEST_UNIFORM_Z (rshr_32_u32_x_untied, svuint32_t,
176 z0 = svrshr_n_u32_x (p0, z1, 32),
177 z0 = svrshr_x (p0, z1, 32))