Revert "[llvm] Improve llvm.objectsize computation by computing GEP, alloca and mallo...
[llvm-project.git] / clang / test / CodeGen / AArch64 / sme2-intrinsics / acle_sme2_write_lane_zt.c
blobf295bfb2d18b45e426f41258abb0cb9fcf939f3e
1 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5
3 // RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme2 -target-feature +sme -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s
4 // RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme2 -target-feature +sme -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK
5 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s
6 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK
7 // RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-lutv2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s
9 // REQUIRES: aarch64-registered-target
11 #ifdef SVE_OVERLOADED_FORMS
12 #define SVE_ACLE_FUNC(A1,A2_UNUSED) A1
13 #else
14 #define SVE_ACLE_FUNC(A1,A2) A1##A2
15 #endif
17 #include <arm_sme.h>
19 // CHECK-LABEL: define dso_local void @test_write_lane_zt_u8_1(
20 // CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0:[0-9]+]] {
21 // CHECK-NEXT: [[ENTRY:.*:]]
22 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 1)
23 // CHECK-NEXT: ret void
25 // CPP-CHECK-LABEL: define dso_local void @_Z23test_write_lane_zt_u8_1u11__SVUint8_t(
26 // CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0:[0-9]+]] {
27 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
28 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 1)
29 // CPP-CHECK-NEXT: ret void
31 void test_write_lane_zt_u8_1(svuint8_t v) __arm_streaming __arm_inout("zt0") {
32 SVE_ACLE_FUNC(svwrite_lane_zt, _u8)(0, v, 1);
35 // CHECK-LABEL: define dso_local void @test_write_lane_zt_s8_2(
36 // CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0]] {
37 // CHECK-NEXT: [[ENTRY:.*:]]
38 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 2)
39 // CHECK-NEXT: ret void
41 // CPP-CHECK-LABEL: define dso_local void @_Z23test_write_lane_zt_s8_2u10__SVInt8_t(
42 // CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0]] {
43 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
44 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 2)
45 // CPP-CHECK-NEXT: ret void
47 void test_write_lane_zt_s8_2(svint8_t v) __arm_streaming __arm_inout("zt0") {
48 SVE_ACLE_FUNC(svwrite_lane_zt, _s8)(0, v, 2);
51 // CHECK-LABEL: define dso_local void @test_write_lane_zt_u16_3(
52 // CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {
53 // CHECK-NEXT: [[ENTRY:.*:]]
54 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)
55 // CHECK-NEXT: ret void
57 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_u16_3u12__SVUint16_t(
58 // CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {
59 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
60 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)
61 // CPP-CHECK-NEXT: ret void
63 void test_write_lane_zt_u16_3(svuint16_t v) __arm_streaming __arm_inout("zt0") {
64 SVE_ACLE_FUNC(svwrite_lane_zt, _u16)(0, v, 1);
67 // CHECK-LABEL: define dso_local void @test_write_lane_zt_s16_1(
68 // CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {
69 // CHECK-NEXT: [[ENTRY:.*:]]
70 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)
71 // CHECK-NEXT: ret void
73 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_s16_1u11__SVInt16_t(
74 // CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {
75 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
76 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)
77 // CPP-CHECK-NEXT: ret void
79 void test_write_lane_zt_s16_1(svint16_t v) __arm_streaming __arm_inout("zt0") {
80 SVE_ACLE_FUNC(svwrite_lane_zt, _s16)(0, v, 1);
83 // CHECK-LABEL: define dso_local void @test_write_lane_zt_u32_2(
84 // CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {
85 // CHECK-NEXT: [[ENTRY:.*:]]
86 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 2)
87 // CHECK-NEXT: ret void
89 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_u32_2u12__SVUint32_t(
90 // CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {
91 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
92 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 2)
93 // CPP-CHECK-NEXT: ret void
95 void test_write_lane_zt_u32_2(svuint32_t v) __arm_streaming __arm_inout("zt0") {
96 SVE_ACLE_FUNC(svwrite_lane_zt, _u32)(0, v, 2);
99 // CHECK-LABEL: define dso_local void @test_write_lane_zt_s32_3(
100 // CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {
101 // CHECK-NEXT: [[ENTRY:.*:]]
102 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 3)
103 // CHECK-NEXT: ret void
105 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_s32_3u11__SVInt32_t(
106 // CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {
107 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
108 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 3)
109 // CPP-CHECK-NEXT: ret void
111 void test_write_lane_zt_s32_3(svint32_t v) __arm_streaming __arm_inout("zt0") {
112 SVE_ACLE_FUNC(svwrite_lane_zt, _s32)(0, v, 3);
115 // CHECK-LABEL: define dso_local void @test_write_lane_zt_u64_0(
116 // CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {
117 // CHECK-NEXT: [[ENTRY:.*:]]
118 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)
119 // CHECK-NEXT: ret void
121 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_u64_0u12__SVUint64_t(
122 // CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {
123 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
124 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)
125 // CPP-CHECK-NEXT: ret void
127 void test_write_lane_zt_u64_0(svuint64_t v) __arm_streaming __arm_inout("zt0") {
128 SVE_ACLE_FUNC(svwrite_lane_zt, _u64)(0, v, 1);
131 // CHECK-LABEL: define dso_local void @test_write_lane_zt_s64_1(
132 // CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {
133 // CHECK-NEXT: [[ENTRY:.*:]]
134 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)
135 // CHECK-NEXT: ret void
137 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_s64_1u11__SVInt64_t(
138 // CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {
139 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
140 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)
141 // CPP-CHECK-NEXT: ret void
143 void test_write_lane_zt_s64_1(svint64_t v) __arm_streaming __arm_inout("zt0") {
144 SVE_ACLE_FUNC(svwrite_lane_zt, _s64)(0, v, 1);
147 // CHECK-LABEL: define dso_local void @test_write_lane_zt_f16_2(
148 // CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR0]] {
149 // CHECK-NEXT: [[ENTRY:.*:]]
150 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]], i32 2)
151 // CHECK-NEXT: ret void
153 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_f16_2u13__SVFloat16_t(
154 // CPP-CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR0]] {
155 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
156 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]], i32 2)
157 // CPP-CHECK-NEXT: ret void
159 void test_write_lane_zt_f16_2(svfloat16_t v) __arm_streaming __arm_inout("zt0") {
160 SVE_ACLE_FUNC(svwrite_lane_zt, _f16)(0, v, 2);
163 // CHECK-LABEL: define dso_local void @test_write_lane_zt_bf16_3(
164 // CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR0]] {
165 // CHECK-NEXT: [[ENTRY:.*:]]
166 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]], i32 3)
167 // CHECK-NEXT: ret void
169 // CPP-CHECK-LABEL: define dso_local void @_Z25test_write_lane_zt_bf16_3u14__SVBfloat16_t(
170 // CPP-CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR0]] {
171 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
172 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]], i32 3)
173 // CPP-CHECK-NEXT: ret void
175 void test_write_lane_zt_bf16_3(svbfloat16_t v) __arm_streaming __arm_inout("zt0") {
176 SVE_ACLE_FUNC(svwrite_lane_zt, _bf16)(0, v, 3);
179 // CHECK-LABEL: define dso_local void @test_write_lane_zt_f32_0(
180 // CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR0]] {
181 // CHECK-NEXT: [[ENTRY:.*:]]
182 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]], i32 2)
183 // CHECK-NEXT: ret void
185 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_f32_0u13__SVFloat32_t(
186 // CPP-CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR0]] {
187 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
188 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]], i32 2)
189 // CPP-CHECK-NEXT: ret void
191 void test_write_lane_zt_f32_0(svfloat32_t v) __arm_streaming __arm_inout("zt0") {
192 SVE_ACLE_FUNC(svwrite_lane_zt, _f32)(0, v, 2);
195 // CHECK-LABEL: define dso_local void @test_write_lane_zt_f64_1(
196 // CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR0]] {
197 // CHECK-NEXT: [[ENTRY:.*:]]
198 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]], i32 1)
199 // CHECK-NEXT: ret void
201 // CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_f64_1u13__SVFloat64_t(
202 // CPP-CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR0]] {
203 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
204 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]], i32 1)
205 // CPP-CHECK-NEXT: ret void
207 void test_write_lane_zt_f64_1(svfloat64_t v) __arm_streaming __arm_inout("zt0") {
208 SVE_ACLE_FUNC(svwrite_lane_zt, _f64)(0, v, 1);
211 //ALIAS
212 // CHECK-LABEL: define dso_local void @test_write_zt_u8(
213 // CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2:[0-9]+]] {
214 // CHECK-NEXT: [[ENTRY:.*:]]
215 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])
216 // CHECK-NEXT: ret void
218 // CPP-CHECK-LABEL: define dso_local void @_Z16test_write_zt_u8u11__SVUint8_t(
219 // CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2:[0-9]+]] {
220 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
221 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])
222 // CPP-CHECK-NEXT: ret void
224 void test_write_zt_u8(svuint8_t v) __arm_streaming __arm_out("zt0") {
225 SVE_ACLE_FUNC(svwrite_zt, _u8)(0, v);
228 // CHECK-LABEL: define dso_local void @test_write_zt_s8(
229 // CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2]] {
230 // CHECK-NEXT: [[ENTRY:.*:]]
231 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])
232 // CHECK-NEXT: ret void
234 // CPP-CHECK-LABEL: define dso_local void @_Z16test_write_zt_s8u10__SVInt8_t(
235 // CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2]] {
236 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
237 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])
238 // CPP-CHECK-NEXT: ret void
240 void test_write_zt_s8(svint8_t v) __arm_streaming __arm_out("zt0") {
241 SVE_ACLE_FUNC(svwrite_zt, _s8)(0, v);
244 // CHECK-LABEL: define dso_local void @test_write_zt_u16(
245 // CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {
246 // CHECK-NEXT: [[ENTRY:.*:]]
247 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])
248 // CHECK-NEXT: ret void
250 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_u16u12__SVUint16_t(
251 // CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {
252 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
253 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])
254 // CPP-CHECK-NEXT: ret void
256 void test_write_zt_u16(svuint16_t v) __arm_streaming __arm_out("zt0") {
257 SVE_ACLE_FUNC(svwrite_zt, _u16)(0, v);
260 // CHECK-LABEL: define dso_local void @test_write_zt_s16(
261 // CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {
262 // CHECK-NEXT: [[ENTRY:.*:]]
263 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])
264 // CHECK-NEXT: ret void
266 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_s16u11__SVInt16_t(
267 // CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {
268 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
269 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])
270 // CPP-CHECK-NEXT: ret void
272 void test_write_zt_s16(svint16_t v) __arm_streaming __arm_out("zt0") {
273 SVE_ACLE_FUNC(svwrite_zt, _s16)(0, v);
276 // CHECK-LABEL: define dso_local void @test_write_zt_u32(
277 // CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {
278 // CHECK-NEXT: [[ENTRY:.*:]]
279 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])
280 // CHECK-NEXT: ret void
282 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_u32u12__SVUint32_t(
283 // CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {
284 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
285 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])
286 // CPP-CHECK-NEXT: ret void
288 void test_write_zt_u32(svuint32_t v) __arm_streaming __arm_out("zt0") {
289 SVE_ACLE_FUNC(svwrite_zt, _u32)(0, v);
292 // CHECK-LABEL: define dso_local void @test_write_zt_s32(
293 // CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {
294 // CHECK-NEXT: [[ENTRY:.*:]]
295 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])
296 // CHECK-NEXT: ret void
298 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_s32u11__SVInt32_t(
299 // CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {
300 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
301 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])
302 // CPP-CHECK-NEXT: ret void
304 void test_write_zt_s32(svint32_t v) __arm_streaming __arm_out("zt0") {
305 SVE_ACLE_FUNC(svwrite_zt, _s32)(0, v);
308 // CHECK-LABEL: define dso_local void @test_write_zt_u64(
309 // CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {
310 // CHECK-NEXT: [[ENTRY:.*:]]
311 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])
312 // CHECK-NEXT: ret void
314 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_u64u12__SVUint64_t(
315 // CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {
316 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
317 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])
318 // CPP-CHECK-NEXT: ret void
320 void test_write_zt_u64(svuint64_t v) __arm_streaming __arm_out("zt0") {
321 SVE_ACLE_FUNC(svwrite_zt, _u64)(0, v);
324 // CHECK-LABEL: define dso_local void @test_write_zt_s64(
325 // CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {
326 // CHECK-NEXT: [[ENTRY:.*:]]
327 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])
328 // CHECK-NEXT: ret void
330 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_s64u11__SVInt64_t(
331 // CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {
332 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
333 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])
334 // CPP-CHECK-NEXT: ret void
336 void test_write_zt_s64(svint64_t v) __arm_streaming __arm_out("zt0") {
337 SVE_ACLE_FUNC(svwrite_zt, _s64)(0, v);
340 // CHECK-LABEL: define dso_local void @test_write_zt_f16(
341 // CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR2]] {
342 // CHECK-NEXT: [[ENTRY:.*:]]
343 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]])
344 // CHECK-NEXT: ret void
346 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_f16u13__SVFloat16_t(
347 // CPP-CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR2]] {
348 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
349 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]])
350 // CPP-CHECK-NEXT: ret void
352 void test_write_zt_f16(svfloat16_t v) __arm_streaming __arm_out("zt0") {
353 SVE_ACLE_FUNC(svwrite_zt, _f16)(0, v);
356 // CHECK-LABEL: define dso_local void @test_write_zt_bf16(
357 // CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR2]] {
358 // CHECK-NEXT: [[ENTRY:.*:]]
359 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]])
360 // CHECK-NEXT: ret void
362 // CPP-CHECK-LABEL: define dso_local void @_Z18test_write_zt_bf16u14__SVBfloat16_t(
363 // CPP-CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR2]] {
364 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
365 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]])
366 // CPP-CHECK-NEXT: ret void
368 void test_write_zt_bf16(svbfloat16_t v) __arm_streaming __arm_out("zt0") {
369 SVE_ACLE_FUNC(svwrite_zt, _bf16)(0, v);
372 // CHECK-LABEL: define dso_local void @test_write_zt_f32(
373 // CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR2]] {
374 // CHECK-NEXT: [[ENTRY:.*:]]
375 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]])
376 // CHECK-NEXT: ret void
378 // CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_f32u13__SVFloat32_t(
379 // CPP-CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR2]] {
380 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
381 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]])
382 // CPP-CHECK-NEXT: ret void
384 void test_write_zt_f32(svfloat32_t v) __arm_streaming __arm_out("zt0") {
385 SVE_ACLE_FUNC(svwrite_zt, _f32)(0, v);
388 // CHECK-LABEL: define dso_local void @test_write__zt_f64(
389 // CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR2]] {
390 // CHECK-NEXT: [[ENTRY:.*:]]
391 // CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]])
392 // CHECK-NEXT: ret void
394 // CPP-CHECK-LABEL: define dso_local void @_Z18test_write__zt_f64u13__SVFloat64_t(
395 // CPP-CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR2]] {
396 // CPP-CHECK-NEXT: [[ENTRY:.*:]]
397 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]])
398 // CPP-CHECK-NEXT: ret void
400 void test_write__zt_f64(svfloat64_t v) __arm_streaming __arm_out("zt0") {
401 SVE_ACLE_FUNC(svwrite_zt, _f64)(0, v);