1 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
2 // REQUIRES: aarch64-registered-target
3 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -S -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s
4 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -S -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK
5 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -S -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s
6 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -S -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK
7 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -S -disable-O0-optnone -Werror -Wall -o /dev/null %s
11 #ifdef SVE_OVERLOADED_FORMS
12 // A simple used,unused... macro, long enough to represent any SVE builtin.
13 #define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
15 #define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
18 // CHECK-LABEL: @test_svreinterpret_s8_s8(
20 // CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
22 // CPP-CHECK-LABEL: @_Z24test_svreinterpret_s8_s8u10__SVInt8_t(
23 // CPP-CHECK-NEXT: entry:
24 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
26 svint8_t
test_svreinterpret_s8_s8(svint8_t op
)
28 return SVE_ACLE_FUNC(svreinterpret_s8
,_s8
,,)(op
);
31 // CHECK-LABEL: @test_svreinterpret_s8_s16(
33 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
34 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
36 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_s16u11__SVInt16_t(
37 // CPP-CHECK-NEXT: entry:
38 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
39 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
41 svint8_t
test_svreinterpret_s8_s16(svint16_t op
)
43 return SVE_ACLE_FUNC(svreinterpret_s8
,_s16
,,)(op
);
46 // CHECK-LABEL: @test_svreinterpret_s8_s32(
48 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
49 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
51 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_s32u11__SVInt32_t(
52 // CPP-CHECK-NEXT: entry:
53 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
54 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
56 svint8_t
test_svreinterpret_s8_s32(svint32_t op
)
58 return SVE_ACLE_FUNC(svreinterpret_s8
,_s32
,,)(op
);
61 // CHECK-LABEL: @test_svreinterpret_s8_s64(
63 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
64 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
66 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_s64u11__SVInt64_t(
67 // CPP-CHECK-NEXT: entry:
68 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
69 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
71 svint8_t
test_svreinterpret_s8_s64(svint64_t op
)
73 return SVE_ACLE_FUNC(svreinterpret_s8
,_s64
,,)(op
);
76 // CHECK-LABEL: @test_svreinterpret_s8_u8(
78 // CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
80 // CPP-CHECK-LABEL: @_Z24test_svreinterpret_s8_u8u11__SVUint8_t(
81 // CPP-CHECK-NEXT: entry:
82 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
84 svint8_t
test_svreinterpret_s8_u8(svuint8_t op
)
86 return SVE_ACLE_FUNC(svreinterpret_s8
,_u8
,,)(op
);
89 // CHECK-LABEL: @test_svreinterpret_s8_u16(
91 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
92 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
94 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_u16u12__SVUint16_t(
95 // CPP-CHECK-NEXT: entry:
96 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
97 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
99 svint8_t
test_svreinterpret_s8_u16(svuint16_t op
)
101 return SVE_ACLE_FUNC(svreinterpret_s8
,_u16
,,)(op
);
104 // CHECK-LABEL: @test_svreinterpret_s8_u32(
105 // CHECK-NEXT: entry:
106 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
107 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
109 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_u32u12__SVUint32_t(
110 // CPP-CHECK-NEXT: entry:
111 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
112 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
114 svint8_t
test_svreinterpret_s8_u32(svuint32_t op
)
116 return SVE_ACLE_FUNC(svreinterpret_s8
,_u32
,,)(op
);
119 // CHECK-LABEL: @test_svreinterpret_s8_u64(
120 // CHECK-NEXT: entry:
121 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
122 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
124 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_u64u12__SVUint64_t(
125 // CPP-CHECK-NEXT: entry:
126 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
127 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
129 svint8_t
test_svreinterpret_s8_u64(svuint64_t op
)
131 return SVE_ACLE_FUNC(svreinterpret_s8
,_u64
,,)(op
);
134 // CHECK-LABEL: @test_svreinterpret_s8_f16(
135 // CHECK-NEXT: entry:
136 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 16 x i8>
137 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
139 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_f16u13__SVFloat16_t(
140 // CPP-CHECK-NEXT: entry:
141 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 16 x i8>
142 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
144 svint8_t
test_svreinterpret_s8_f16(svfloat16_t op
)
146 return SVE_ACLE_FUNC(svreinterpret_s8
,_f16
,,)(op
);
149 // CHECK-LABEL: @test_svreinterpret_s8_f32(
150 // CHECK-NEXT: entry:
151 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 16 x i8>
152 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
154 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_f32u13__SVFloat32_t(
155 // CPP-CHECK-NEXT: entry:
156 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 16 x i8>
157 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
159 svint8_t
test_svreinterpret_s8_f32(svfloat32_t op
)
161 return SVE_ACLE_FUNC(svreinterpret_s8
,_f32
,,)(op
);
164 // CHECK-LABEL: @test_svreinterpret_s8_f64(
165 // CHECK-NEXT: entry:
166 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 16 x i8>
167 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
169 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s8_f64u13__SVFloat64_t(
170 // CPP-CHECK-NEXT: entry:
171 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 16 x i8>
172 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
174 svint8_t
test_svreinterpret_s8_f64(svfloat64_t op
)
176 return SVE_ACLE_FUNC(svreinterpret_s8
,_f64
,,)(op
);
179 // CHECK-LABEL: @test_svreinterpret_s16_s8(
180 // CHECK-NEXT: entry:
181 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
182 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
184 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s16_s8u10__SVInt8_t(
185 // CPP-CHECK-NEXT: entry:
186 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
187 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
189 svint16_t
test_svreinterpret_s16_s8(svint8_t op
)
191 return SVE_ACLE_FUNC(svreinterpret_s16
,_s8
,,)(op
);
194 // CHECK-LABEL: @test_svreinterpret_s16_s16(
195 // CHECK-NEXT: entry:
196 // CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
198 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_s16u11__SVInt16_t(
199 // CPP-CHECK-NEXT: entry:
200 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
202 svint16_t
test_svreinterpret_s16_s16(svint16_t op
)
204 return SVE_ACLE_FUNC(svreinterpret_s16
,_s16
,,)(op
);
207 // CHECK-LABEL: @test_svreinterpret_s16_s32(
208 // CHECK-NEXT: entry:
209 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
210 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
212 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_s32u11__SVInt32_t(
213 // CPP-CHECK-NEXT: entry:
214 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
215 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
217 svint16_t
test_svreinterpret_s16_s32(svint32_t op
)
219 return SVE_ACLE_FUNC(svreinterpret_s16
,_s32
,,)(op
);
222 // CHECK-LABEL: @test_svreinterpret_s16_s64(
223 // CHECK-NEXT: entry:
224 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
225 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
227 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_s64u11__SVInt64_t(
228 // CPP-CHECK-NEXT: entry:
229 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
230 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
232 svint16_t
test_svreinterpret_s16_s64(svint64_t op
)
234 return SVE_ACLE_FUNC(svreinterpret_s16
,_s64
,,)(op
);
237 // CHECK-LABEL: @test_svreinterpret_s16_u8(
238 // CHECK-NEXT: entry:
239 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
240 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
242 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s16_u8u11__SVUint8_t(
243 // CPP-CHECK-NEXT: entry:
244 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
245 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
247 svint16_t
test_svreinterpret_s16_u8(svuint8_t op
)
249 return SVE_ACLE_FUNC(svreinterpret_s16
,_u8
,,)(op
);
252 // CHECK-LABEL: @test_svreinterpret_s16_u16(
253 // CHECK-NEXT: entry:
254 // CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
256 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_u16u12__SVUint16_t(
257 // CPP-CHECK-NEXT: entry:
258 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
260 svint16_t
test_svreinterpret_s16_u16(svuint16_t op
)
262 return SVE_ACLE_FUNC(svreinterpret_s16
,_u16
,,)(op
);
265 // CHECK-LABEL: @test_svreinterpret_s16_u32(
266 // CHECK-NEXT: entry:
267 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
268 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
270 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_u32u12__SVUint32_t(
271 // CPP-CHECK-NEXT: entry:
272 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
273 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
275 svint16_t
test_svreinterpret_s16_u32(svuint32_t op
)
277 return SVE_ACLE_FUNC(svreinterpret_s16
,_u32
,,)(op
);
280 // CHECK-LABEL: @test_svreinterpret_s16_u64(
281 // CHECK-NEXT: entry:
282 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
283 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
285 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_u64u12__SVUint64_t(
286 // CPP-CHECK-NEXT: entry:
287 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
288 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
290 svint16_t
test_svreinterpret_s16_u64(svuint64_t op
)
292 return SVE_ACLE_FUNC(svreinterpret_s16
,_u64
,,)(op
);
295 // CHECK-LABEL: @test_svreinterpret_s16_f16(
296 // CHECK-NEXT: entry:
297 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 8 x i16>
298 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
300 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_f16u13__SVFloat16_t(
301 // CPP-CHECK-NEXT: entry:
302 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 8 x i16>
303 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
305 svint16_t
test_svreinterpret_s16_f16(svfloat16_t op
)
307 return SVE_ACLE_FUNC(svreinterpret_s16
,_f16
,,)(op
);
310 // CHECK-LABEL: @test_svreinterpret_s16_f32(
311 // CHECK-NEXT: entry:
312 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 8 x i16>
313 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
315 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_f32u13__SVFloat32_t(
316 // CPP-CHECK-NEXT: entry:
317 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 8 x i16>
318 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
320 svint16_t
test_svreinterpret_s16_f32(svfloat32_t op
)
322 return SVE_ACLE_FUNC(svreinterpret_s16
,_f32
,,)(op
);
325 // CHECK-LABEL: @test_svreinterpret_s16_f64(
326 // CHECK-NEXT: entry:
327 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 8 x i16>
328 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
330 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s16_f64u13__SVFloat64_t(
331 // CPP-CHECK-NEXT: entry:
332 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 8 x i16>
333 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
335 svint16_t
test_svreinterpret_s16_f64(svfloat64_t op
)
337 return SVE_ACLE_FUNC(svreinterpret_s16
,_f64
,,)(op
);
340 // CHECK-LABEL: @test_svreinterpret_s32_s8(
341 // CHECK-NEXT: entry:
342 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
343 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
345 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s32_s8u10__SVInt8_t(
346 // CPP-CHECK-NEXT: entry:
347 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
348 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
350 svint32_t
test_svreinterpret_s32_s8(svint8_t op
)
352 return SVE_ACLE_FUNC(svreinterpret_s32
,_s8
,,)(op
);
355 // CHECK-LABEL: @test_svreinterpret_s32_s16(
356 // CHECK-NEXT: entry:
357 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
358 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
360 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_s16u11__SVInt16_t(
361 // CPP-CHECK-NEXT: entry:
362 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
363 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
365 svint32_t
test_svreinterpret_s32_s16(svint16_t op
)
367 return SVE_ACLE_FUNC(svreinterpret_s32
,_s16
,,)(op
);
371 // CHECK-LABEL: @test_svreinterpret_s32_s32(
372 // CHECK-NEXT: entry:
373 // CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
375 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_s32u11__SVInt32_t(
376 // CPP-CHECK-NEXT: entry:
377 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
379 svint32_t
test_svreinterpret_s32_s32(svint32_t op
)
381 return SVE_ACLE_FUNC(svreinterpret_s32
,_s32
,,)(op
);
384 // CHECK-LABEL: @test_svreinterpret_s32_s64(
385 // CHECK-NEXT: entry:
386 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
387 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
389 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_s64u11__SVInt64_t(
390 // CPP-CHECK-NEXT: entry:
391 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
392 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
394 svint32_t
test_svreinterpret_s32_s64(svint64_t op
)
396 return SVE_ACLE_FUNC(svreinterpret_s32
,_s64
,,)(op
);
399 // CHECK-LABEL: @test_svreinterpret_s32_u8(
400 // CHECK-NEXT: entry:
401 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
402 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
404 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s32_u8u11__SVUint8_t(
405 // CPP-CHECK-NEXT: entry:
406 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
407 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
409 svint32_t
test_svreinterpret_s32_u8(svuint8_t op
)
411 return SVE_ACLE_FUNC(svreinterpret_s32
,_u8
,,)(op
);
414 // CHECK-LABEL: @test_svreinterpret_s32_u16(
415 // CHECK-NEXT: entry:
416 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
417 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
419 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_u16u12__SVUint16_t(
420 // CPP-CHECK-NEXT: entry:
421 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
422 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
424 svint32_t
test_svreinterpret_s32_u16(svuint16_t op
)
426 return SVE_ACLE_FUNC(svreinterpret_s32
,_u16
,,)(op
);
429 // CHECK-LABEL: @test_svreinterpret_s32_u32(
430 // CHECK-NEXT: entry:
431 // CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
433 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_u32u12__SVUint32_t(
434 // CPP-CHECK-NEXT: entry:
435 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
437 svint32_t
test_svreinterpret_s32_u32(svuint32_t op
)
439 return SVE_ACLE_FUNC(svreinterpret_s32
,_u32
,,)(op
);
442 // CHECK-LABEL: @test_svreinterpret_s32_u64(
443 // CHECK-NEXT: entry:
444 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
445 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
447 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_u64u12__SVUint64_t(
448 // CPP-CHECK-NEXT: entry:
449 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
450 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
452 svint32_t
test_svreinterpret_s32_u64(svuint64_t op
)
454 return SVE_ACLE_FUNC(svreinterpret_s32
,_u64
,,)(op
);
457 // CHECK-LABEL: @test_svreinterpret_s32_f16(
458 // CHECK-NEXT: entry:
459 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 4 x i32>
460 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
462 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_f16u13__SVFloat16_t(
463 // CPP-CHECK-NEXT: entry:
464 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 4 x i32>
465 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
467 svint32_t
test_svreinterpret_s32_f16(svfloat16_t op
)
469 return SVE_ACLE_FUNC(svreinterpret_s32
,_f16
,,)(op
);
472 // CHECK-LABEL: @test_svreinterpret_s32_f32(
473 // CHECK-NEXT: entry:
474 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 4 x i32>
475 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
477 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_f32u13__SVFloat32_t(
478 // CPP-CHECK-NEXT: entry:
479 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 4 x i32>
480 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
482 svint32_t
test_svreinterpret_s32_f32(svfloat32_t op
)
484 return SVE_ACLE_FUNC(svreinterpret_s32
,_f32
,,)(op
);
487 // CHECK-LABEL: @test_svreinterpret_s32_f64(
488 // CHECK-NEXT: entry:
489 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 4 x i32>
490 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
492 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s32_f64u13__SVFloat64_t(
493 // CPP-CHECK-NEXT: entry:
494 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 4 x i32>
495 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
497 svint32_t
test_svreinterpret_s32_f64(svfloat64_t op
)
499 return SVE_ACLE_FUNC(svreinterpret_s32
,_f64
,,)(op
);
502 // CHECK-LABEL: @test_svreinterpret_s64_s8(
503 // CHECK-NEXT: entry:
504 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
505 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
507 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s64_s8u10__SVInt8_t(
508 // CPP-CHECK-NEXT: entry:
509 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
510 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
512 svint64_t
test_svreinterpret_s64_s8(svint8_t op
)
514 return SVE_ACLE_FUNC(svreinterpret_s64
,_s8
,,)(op
);
517 // CHECK-LABEL: @test_svreinterpret_s64_s16(
518 // CHECK-NEXT: entry:
519 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
520 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
522 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_s16u11__SVInt16_t(
523 // CPP-CHECK-NEXT: entry:
524 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
525 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
527 svint64_t
test_svreinterpret_s64_s16(svint16_t op
)
529 return SVE_ACLE_FUNC(svreinterpret_s64
,_s16
,,)(op
);
532 // CHECK-LABEL: @test_svreinterpret_s64_s32(
533 // CHECK-NEXT: entry:
534 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
535 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
537 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_s32u11__SVInt32_t(
538 // CPP-CHECK-NEXT: entry:
539 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
540 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
542 svint64_t
test_svreinterpret_s64_s32(svint32_t op
)
544 return SVE_ACLE_FUNC(svreinterpret_s64
,_s32
,,)(op
);
547 // CHECK-LABEL: @test_svreinterpret_s64_s64(
548 // CHECK-NEXT: entry:
549 // CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
551 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_s64u11__SVInt64_t(
552 // CPP-CHECK-NEXT: entry:
553 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
555 svint64_t
test_svreinterpret_s64_s64(svint64_t op
)
557 return SVE_ACLE_FUNC(svreinterpret_s64
,_s64
,,)(op
);
560 // CHECK-LABEL: @test_svreinterpret_s64_u8(
561 // CHECK-NEXT: entry:
562 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
563 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
565 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_s64_u8u11__SVUint8_t(
566 // CPP-CHECK-NEXT: entry:
567 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
568 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
570 svint64_t
test_svreinterpret_s64_u8(svuint8_t op
)
572 return SVE_ACLE_FUNC(svreinterpret_s64
,_u8
,,)(op
);
575 // CHECK-LABEL: @test_svreinterpret_s64_u16(
576 // CHECK-NEXT: entry:
577 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
578 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
580 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_u16u12__SVUint16_t(
581 // CPP-CHECK-NEXT: entry:
582 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
583 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
585 svint64_t
test_svreinterpret_s64_u16(svuint16_t op
)
587 return SVE_ACLE_FUNC(svreinterpret_s64
,_u16
,,)(op
);
590 // CHECK-LABEL: @test_svreinterpret_s64_u32(
591 // CHECK-NEXT: entry:
592 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
593 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
595 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_u32u12__SVUint32_t(
596 // CPP-CHECK-NEXT: entry:
597 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
598 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
600 svint64_t
test_svreinterpret_s64_u32(svuint32_t op
)
602 return SVE_ACLE_FUNC(svreinterpret_s64
,_u32
,,)(op
);
605 // CHECK-LABEL: @test_svreinterpret_s64_u64(
606 // CHECK-NEXT: entry:
607 // CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
609 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_u64u12__SVUint64_t(
610 // CPP-CHECK-NEXT: entry:
611 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
613 svint64_t
test_svreinterpret_s64_u64(svuint64_t op
)
615 return SVE_ACLE_FUNC(svreinterpret_s64
,_u64
,,)(op
);
618 // CHECK-LABEL: @test_svreinterpret_s64_f16(
619 // CHECK-NEXT: entry:
620 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 2 x i64>
621 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
623 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_f16u13__SVFloat16_t(
624 // CPP-CHECK-NEXT: entry:
625 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 2 x i64>
626 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
628 svint64_t
test_svreinterpret_s64_f16(svfloat16_t op
)
630 return SVE_ACLE_FUNC(svreinterpret_s64
,_f16
,,)(op
);
633 // CHECK-LABEL: @test_svreinterpret_s64_f32(
634 // CHECK-NEXT: entry:
635 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 2 x i64>
636 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
638 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_f32u13__SVFloat32_t(
639 // CPP-CHECK-NEXT: entry:
640 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 2 x i64>
641 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
643 svint64_t
test_svreinterpret_s64_f32(svfloat32_t op
)
645 return SVE_ACLE_FUNC(svreinterpret_s64
,_f32
,,)(op
);
648 // CHECK-LABEL: @test_svreinterpret_s64_f64(
649 // CHECK-NEXT: entry:
650 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 2 x i64>
651 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
653 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_s64_f64u13__SVFloat64_t(
654 // CPP-CHECK-NEXT: entry:
655 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 2 x i64>
656 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
658 svint64_t
test_svreinterpret_s64_f64(svfloat64_t op
)
660 return SVE_ACLE_FUNC(svreinterpret_s64
,_f64
,,)(op
);
663 // CHECK-LABEL: @test_svreinterpret_u8_s8(
664 // CHECK-NEXT: entry:
665 // CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
667 // CPP-CHECK-LABEL: @_Z24test_svreinterpret_u8_s8u10__SVInt8_t(
668 // CPP-CHECK-NEXT: entry:
669 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
671 svuint8_t
test_svreinterpret_u8_s8(svint8_t op
)
673 return SVE_ACLE_FUNC(svreinterpret_u8
,_s8
,,)(op
);
676 // CHECK-LABEL: @test_svreinterpret_u8_s16(
677 // CHECK-NEXT: entry:
678 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
679 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
681 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_s16u11__SVInt16_t(
682 // CPP-CHECK-NEXT: entry:
683 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
684 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
686 svuint8_t
test_svreinterpret_u8_s16(svint16_t op
)
688 return SVE_ACLE_FUNC(svreinterpret_u8
,_s16
,,)(op
);
691 // CHECK-LABEL: @test_svreinterpret_u8_s32(
692 // CHECK-NEXT: entry:
693 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
694 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
696 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_s32u11__SVInt32_t(
697 // CPP-CHECK-NEXT: entry:
698 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
699 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
701 svuint8_t
test_svreinterpret_u8_s32(svint32_t op
)
703 return SVE_ACLE_FUNC(svreinterpret_u8
,_s32
,,)(op
);
706 // CHECK-LABEL: @test_svreinterpret_u8_s64(
707 // CHECK-NEXT: entry:
708 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
709 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
711 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_s64u11__SVInt64_t(
712 // CPP-CHECK-NEXT: entry:
713 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
714 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
716 svuint8_t
test_svreinterpret_u8_s64(svint64_t op
)
718 return SVE_ACLE_FUNC(svreinterpret_u8
,_s64
,,)(op
);
721 // CHECK-LABEL: @test_svreinterpret_u8_u8(
722 // CHECK-NEXT: entry:
723 // CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
725 // CPP-CHECK-LABEL: @_Z24test_svreinterpret_u8_u8u11__SVUint8_t(
726 // CPP-CHECK-NEXT: entry:
727 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[OP:%.*]]
729 svuint8_t
test_svreinterpret_u8_u8(svuint8_t op
)
731 return SVE_ACLE_FUNC(svreinterpret_u8
,_u8
,,)(op
);
734 // CHECK-LABEL: @test_svreinterpret_u8_u16(
735 // CHECK-NEXT: entry:
736 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
737 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
739 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_u16u12__SVUint16_t(
740 // CPP-CHECK-NEXT: entry:
741 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 16 x i8>
742 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
744 svuint8_t
test_svreinterpret_u8_u16(svuint16_t op
)
746 return SVE_ACLE_FUNC(svreinterpret_u8
,_u16
,,)(op
);
749 // CHECK-LABEL: @test_svreinterpret_u8_u32(
750 // CHECK-NEXT: entry:
751 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
752 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
754 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_u32u12__SVUint32_t(
755 // CPP-CHECK-NEXT: entry:
756 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 16 x i8>
757 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
759 svuint8_t
test_svreinterpret_u8_u32(svuint32_t op
)
761 return SVE_ACLE_FUNC(svreinterpret_u8
,_u32
,,)(op
);
764 // CHECK-LABEL: @test_svreinterpret_u8_u64(
765 // CHECK-NEXT: entry:
766 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
767 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
769 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_u64u12__SVUint64_t(
770 // CPP-CHECK-NEXT: entry:
771 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 16 x i8>
772 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
774 svuint8_t
test_svreinterpret_u8_u64(svuint64_t op
)
776 return SVE_ACLE_FUNC(svreinterpret_u8
,_u64
,,)(op
);
779 // CHECK-LABEL: @test_svreinterpret_u8_f16(
780 // CHECK-NEXT: entry:
781 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 16 x i8>
782 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
784 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_f16u13__SVFloat16_t(
785 // CPP-CHECK-NEXT: entry:
786 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 16 x i8>
787 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
789 svuint8_t
test_svreinterpret_u8_f16(svfloat16_t op
)
791 return SVE_ACLE_FUNC(svreinterpret_u8
,_f16
,,)(op
);
794 // CHECK-LABEL: @test_svreinterpret_u8_f32(
795 // CHECK-NEXT: entry:
796 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 16 x i8>
797 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
799 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_f32u13__SVFloat32_t(
800 // CPP-CHECK-NEXT: entry:
801 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 16 x i8>
802 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
804 svuint8_t
test_svreinterpret_u8_f32(svfloat32_t op
)
806 return SVE_ACLE_FUNC(svreinterpret_u8
,_f32
,,)(op
);
809 // CHECK-LABEL: @test_svreinterpret_u8_f64(
810 // CHECK-NEXT: entry:
811 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 16 x i8>
812 // CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
814 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u8_f64u13__SVFloat64_t(
815 // CPP-CHECK-NEXT: entry:
816 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 16 x i8>
817 // CPP-CHECK-NEXT: ret <vscale x 16 x i8> [[TMP0]]
819 svuint8_t
test_svreinterpret_u8_f64(svfloat64_t op
)
821 return SVE_ACLE_FUNC(svreinterpret_u8
,_f64
,,)(op
);
824 // CHECK-LABEL: @test_svreinterpret_u16_s8(
825 // CHECK-NEXT: entry:
826 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
827 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
829 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u16_s8u10__SVInt8_t(
830 // CPP-CHECK-NEXT: entry:
831 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
832 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
834 svuint16_t
test_svreinterpret_u16_s8(svint8_t op
)
836 return SVE_ACLE_FUNC(svreinterpret_u16
,_s8
,,)(op
);
839 // CHECK-LABEL: @test_svreinterpret_u16_s16(
840 // CHECK-NEXT: entry:
841 // CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
843 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_s16u11__SVInt16_t(
844 // CPP-CHECK-NEXT: entry:
845 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
847 svuint16_t
test_svreinterpret_u16_s16(svint16_t op
)
849 return SVE_ACLE_FUNC(svreinterpret_u16
,_s16
,,)(op
);
852 // CHECK-LABEL: @test_svreinterpret_u16_s32(
853 // CHECK-NEXT: entry:
854 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
855 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
857 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_s32u11__SVInt32_t(
858 // CPP-CHECK-NEXT: entry:
859 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
860 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
862 svuint16_t
test_svreinterpret_u16_s32(svint32_t op
)
864 return SVE_ACLE_FUNC(svreinterpret_u16
,_s32
,,)(op
);
867 // CHECK-LABEL: @test_svreinterpret_u16_s64(
868 // CHECK-NEXT: entry:
869 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
870 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
872 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_s64u11__SVInt64_t(
873 // CPP-CHECK-NEXT: entry:
874 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
875 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
877 svuint16_t
test_svreinterpret_u16_s64(svint64_t op
)
879 return SVE_ACLE_FUNC(svreinterpret_u16
,_s64
,,)(op
);
882 // CHECK-LABEL: @test_svreinterpret_u16_u8(
883 // CHECK-NEXT: entry:
884 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
885 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
887 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u16_u8u11__SVUint8_t(
888 // CPP-CHECK-NEXT: entry:
889 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x i16>
890 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
892 svuint16_t
test_svreinterpret_u16_u8(svuint8_t op
)
894 return SVE_ACLE_FUNC(svreinterpret_u16
,_u8
,,)(op
);
897 // CHECK-LABEL: @test_svreinterpret_u16_u16(
898 // CHECK-NEXT: entry:
899 // CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
901 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_u16u12__SVUint16_t(
902 // CPP-CHECK-NEXT: entry:
903 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[OP:%.*]]
905 svuint16_t
test_svreinterpret_u16_u16(svuint16_t op
)
907 return SVE_ACLE_FUNC(svreinterpret_u16
,_u16
,,)(op
);
910 // CHECK-LABEL: @test_svreinterpret_u16_u32(
911 // CHECK-NEXT: entry:
912 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
913 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
915 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_u32u12__SVUint32_t(
916 // CPP-CHECK-NEXT: entry:
917 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x i16>
918 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
920 svuint16_t
test_svreinterpret_u16_u32(svuint32_t op
)
922 return SVE_ACLE_FUNC(svreinterpret_u16
,_u32
,,)(op
);
925 // CHECK-LABEL: @test_svreinterpret_u16_u64(
926 // CHECK-NEXT: entry:
927 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
928 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
930 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_u64u12__SVUint64_t(
931 // CPP-CHECK-NEXT: entry:
932 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x i16>
933 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
935 svuint16_t
test_svreinterpret_u16_u64(svuint64_t op
)
937 return SVE_ACLE_FUNC(svreinterpret_u16
,_u64
,,)(op
);
940 // CHECK-LABEL: @test_svreinterpret_u16_f16(
941 // CHECK-NEXT: entry:
942 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 8 x i16>
943 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
945 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_f16u13__SVFloat16_t(
946 // CPP-CHECK-NEXT: entry:
947 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 8 x i16>
948 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
950 svuint16_t
test_svreinterpret_u16_f16(svfloat16_t op
)
952 return SVE_ACLE_FUNC(svreinterpret_u16
,_f16
,,)(op
);
955 // CHECK-LABEL: @test_svreinterpret_u16_f32(
956 // CHECK-NEXT: entry:
957 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 8 x i16>
958 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
960 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_f32u13__SVFloat32_t(
961 // CPP-CHECK-NEXT: entry:
962 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 8 x i16>
963 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
965 svuint16_t
test_svreinterpret_u16_f32(svfloat32_t op
)
967 return SVE_ACLE_FUNC(svreinterpret_u16
,_f32
,,)(op
);
970 // CHECK-LABEL: @test_svreinterpret_u16_f64(
971 // CHECK-NEXT: entry:
972 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 8 x i16>
973 // CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
975 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u16_f64u13__SVFloat64_t(
976 // CPP-CHECK-NEXT: entry:
977 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 8 x i16>
978 // CPP-CHECK-NEXT: ret <vscale x 8 x i16> [[TMP0]]
980 svuint16_t
test_svreinterpret_u16_f64(svfloat64_t op
)
982 return SVE_ACLE_FUNC(svreinterpret_u16
,_f64
,,)(op
);
985 // CHECK-LABEL: @test_svreinterpret_u32_s8(
986 // CHECK-NEXT: entry:
987 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
988 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
990 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u32_s8u10__SVInt8_t(
991 // CPP-CHECK-NEXT: entry:
992 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
993 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
995 svuint32_t
test_svreinterpret_u32_s8(svint8_t op
)
997 return SVE_ACLE_FUNC(svreinterpret_u32
,_s8
,,)(op
);
1000 // CHECK-LABEL: @test_svreinterpret_u32_s16(
1001 // CHECK-NEXT: entry:
1002 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
1003 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1005 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_s16u11__SVInt16_t(
1006 // CPP-CHECK-NEXT: entry:
1007 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
1008 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1010 svuint32_t
test_svreinterpret_u32_s16(svint16_t op
)
1012 return SVE_ACLE_FUNC(svreinterpret_u32
,_s16
,,)(op
);
1015 // CHECK-LABEL: @test_svreinterpret_u32_s32(
1016 // CHECK-NEXT: entry:
1017 // CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
1019 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_s32u11__SVInt32_t(
1020 // CPP-CHECK-NEXT: entry:
1021 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
1023 svuint32_t
test_svreinterpret_u32_s32(svint32_t op
)
1025 return SVE_ACLE_FUNC(svreinterpret_u32
,_s32
,,)(op
);
1028 // CHECK-LABEL: @test_svreinterpret_u32_s64(
1029 // CHECK-NEXT: entry:
1030 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
1031 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1033 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_s64u11__SVInt64_t(
1034 // CPP-CHECK-NEXT: entry:
1035 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
1036 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1038 svuint32_t
test_svreinterpret_u32_s64(svint64_t op
)
1040 return SVE_ACLE_FUNC(svreinterpret_u32
,_s64
,,)(op
);
1043 // CHECK-LABEL: @test_svreinterpret_u32_u8(
1044 // CHECK-NEXT: entry:
1045 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
1046 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1048 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u32_u8u11__SVUint8_t(
1049 // CPP-CHECK-NEXT: entry:
1050 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x i32>
1051 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1053 svuint32_t
test_svreinterpret_u32_u8(svuint8_t op
)
1055 return SVE_ACLE_FUNC(svreinterpret_u32
,_u8
,,)(op
);
1058 // CHECK-LABEL: @test_svreinterpret_u32_u16(
1059 // CHECK-NEXT: entry:
1060 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
1061 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1063 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_u16u12__SVUint16_t(
1064 // CPP-CHECK-NEXT: entry:
1065 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x i32>
1066 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1068 svuint32_t
test_svreinterpret_u32_u16(svuint16_t op
)
1070 return SVE_ACLE_FUNC(svreinterpret_u32
,_u16
,,)(op
);
1073 // CHECK-LABEL: @test_svreinterpret_u32_u32(
1074 // CHECK-NEXT: entry:
1075 // CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
1077 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_u32u12__SVUint32_t(
1078 // CPP-CHECK-NEXT: entry:
1079 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[OP:%.*]]
1081 svuint32_t
test_svreinterpret_u32_u32(svuint32_t op
)
1083 return SVE_ACLE_FUNC(svreinterpret_u32
,_u32
,,)(op
);
1086 // CHECK-LABEL: @test_svreinterpret_u32_u64(
1087 // CHECK-NEXT: entry:
1088 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
1089 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1091 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_u64u12__SVUint64_t(
1092 // CPP-CHECK-NEXT: entry:
1093 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x i32>
1094 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1096 svuint32_t
test_svreinterpret_u32_u64(svuint64_t op
)
1098 return SVE_ACLE_FUNC(svreinterpret_u32
,_u64
,,)(op
);
1101 // CHECK-LABEL: @test_svreinterpret_u32_f16(
1102 // CHECK-NEXT: entry:
1103 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 4 x i32>
1104 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1106 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_f16u13__SVFloat16_t(
1107 // CPP-CHECK-NEXT: entry:
1108 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 4 x i32>
1109 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1111 svuint32_t
test_svreinterpret_u32_f16(svfloat16_t op
)
1113 return SVE_ACLE_FUNC(svreinterpret_u32
,_f16
,,)(op
);
1116 // CHECK-LABEL: @test_svreinterpret_u32_f32(
1117 // CHECK-NEXT: entry:
1118 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 4 x i32>
1119 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1121 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_f32u13__SVFloat32_t(
1122 // CPP-CHECK-NEXT: entry:
1123 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 4 x i32>
1124 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1126 svuint32_t
test_svreinterpret_u32_f32(svfloat32_t op
)
1128 return SVE_ACLE_FUNC(svreinterpret_u32
,_f32
,,)(op
);
1131 // CHECK-LABEL: @test_svreinterpret_u32_f64(
1132 // CHECK-NEXT: entry:
1133 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 4 x i32>
1134 // CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1136 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u32_f64u13__SVFloat64_t(
1137 // CPP-CHECK-NEXT: entry:
1138 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 4 x i32>
1139 // CPP-CHECK-NEXT: ret <vscale x 4 x i32> [[TMP0]]
1141 svuint32_t
test_svreinterpret_u32_f64(svfloat64_t op
)
1143 return SVE_ACLE_FUNC(svreinterpret_u32
,_f64
,,)(op
);
1146 // CHECK-LABEL: @test_svreinterpret_u64_s8(
1147 // CHECK-NEXT: entry:
1148 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
1149 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1151 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u64_s8u10__SVInt8_t(
1152 // CPP-CHECK-NEXT: entry:
1153 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
1154 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1156 svuint64_t
test_svreinterpret_u64_s8(svint8_t op
)
1158 return SVE_ACLE_FUNC(svreinterpret_u64
,_s8
,,)(op
);
1161 // CHECK-LABEL: @test_svreinterpret_u64_s16(
1162 // CHECK-NEXT: entry:
1163 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
1164 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1166 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_s16u11__SVInt16_t(
1167 // CPP-CHECK-NEXT: entry:
1168 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
1169 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1171 svuint64_t
test_svreinterpret_u64_s16(svint16_t op
)
1173 return SVE_ACLE_FUNC(svreinterpret_u64
,_s16
,,)(op
);
1176 // CHECK-LABEL: @test_svreinterpret_u64_s32(
1177 // CHECK-NEXT: entry:
1178 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
1179 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1181 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_s32u11__SVInt32_t(
1182 // CPP-CHECK-NEXT: entry:
1183 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
1184 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1186 svuint64_t
test_svreinterpret_u64_s32(svint32_t op
)
1188 return SVE_ACLE_FUNC(svreinterpret_u64
,_s32
,,)(op
);
1191 // CHECK-LABEL: @test_svreinterpret_u64_s64(
1192 // CHECK-NEXT: entry:
1193 // CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
1195 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_s64u11__SVInt64_t(
1196 // CPP-CHECK-NEXT: entry:
1197 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
1199 svuint64_t
test_svreinterpret_u64_s64(svint64_t op
)
1201 return SVE_ACLE_FUNC(svreinterpret_u64
,_s64
,,)(op
);
1204 // CHECK-LABEL: @test_svreinterpret_u64_u8(
1205 // CHECK-NEXT: entry:
1206 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
1207 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1209 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_u64_u8u11__SVUint8_t(
1210 // CPP-CHECK-NEXT: entry:
1211 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x i64>
1212 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1214 svuint64_t
test_svreinterpret_u64_u8(svuint8_t op
)
1216 return SVE_ACLE_FUNC(svreinterpret_u64
,_u8
,,)(op
);
1219 // CHECK-LABEL: @test_svreinterpret_u64_u16(
1220 // CHECK-NEXT: entry:
1221 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
1222 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1224 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_u16u12__SVUint16_t(
1225 // CPP-CHECK-NEXT: entry:
1226 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x i64>
1227 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1229 svuint64_t
test_svreinterpret_u64_u16(svuint16_t op
)
1231 return SVE_ACLE_FUNC(svreinterpret_u64
,_u16
,,)(op
);
1234 // CHECK-LABEL: @test_svreinterpret_u64_u32(
1235 // CHECK-NEXT: entry:
1236 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
1237 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1239 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_u32u12__SVUint32_t(
1240 // CPP-CHECK-NEXT: entry:
1241 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x i64>
1242 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1244 svuint64_t
test_svreinterpret_u64_u32(svuint32_t op
)
1246 return SVE_ACLE_FUNC(svreinterpret_u64
,_u32
,,)(op
);
1249 // CHECK-LABEL: @test_svreinterpret_u64_u64(
1250 // CHECK-NEXT: entry:
1251 // CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
1253 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_u64u12__SVUint64_t(
1254 // CPP-CHECK-NEXT: entry:
1255 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[OP:%.*]]
1257 svuint64_t
test_svreinterpret_u64_u64(svuint64_t op
)
1259 return SVE_ACLE_FUNC(svreinterpret_u64
,_u64
,,)(op
);
1262 // CHECK-LABEL: @test_svreinterpret_u64_f16(
1263 // CHECK-NEXT: entry:
1264 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 2 x i64>
1265 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1267 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_f16u13__SVFloat16_t(
1268 // CPP-CHECK-NEXT: entry:
1269 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 2 x i64>
1270 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1272 svuint64_t
test_svreinterpret_u64_f16(svfloat16_t op
)
1274 return SVE_ACLE_FUNC(svreinterpret_u64
,_f16
,,)(op
);
1277 // CHECK-LABEL: @test_svreinterpret_u64_f32(
1278 // CHECK-NEXT: entry:
1279 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 2 x i64>
1280 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1282 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_f32u13__SVFloat32_t(
1283 // CPP-CHECK-NEXT: entry:
1284 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 2 x i64>
1285 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1287 svuint64_t
test_svreinterpret_u64_f32(svfloat32_t op
)
1289 return SVE_ACLE_FUNC(svreinterpret_u64
,_f32
,,)(op
);
1292 // CHECK-LABEL: @test_svreinterpret_u64_f64(
1293 // CHECK-NEXT: entry:
1294 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 2 x i64>
1295 // CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1297 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_u64_f64u13__SVFloat64_t(
1298 // CPP-CHECK-NEXT: entry:
1299 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 2 x i64>
1300 // CPP-CHECK-NEXT: ret <vscale x 2 x i64> [[TMP0]]
1302 svuint64_t
test_svreinterpret_u64_f64(svfloat64_t op
)
1304 return SVE_ACLE_FUNC(svreinterpret_u64
,_f64
,,)(op
);
1307 // CHECK-LABEL: @test_svreinterpret_f16_s8(
1308 // CHECK-NEXT: entry:
1309 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x half>
1310 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1312 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_f16_s8u10__SVInt8_t(
1313 // CPP-CHECK-NEXT: entry:
1314 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x half>
1315 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1317 svfloat16_t
test_svreinterpret_f16_s8(svint8_t op
)
1319 return SVE_ACLE_FUNC(svreinterpret_f16
,_s8
,,)(op
);
1322 // CHECK-LABEL: @test_svreinterpret_f16_s16(
1323 // CHECK-NEXT: entry:
1324 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 8 x half>
1325 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1327 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_s16u11__SVInt16_t(
1328 // CPP-CHECK-NEXT: entry:
1329 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 8 x half>
1330 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1332 svfloat16_t
test_svreinterpret_f16_s16(svint16_t op
)
1334 return SVE_ACLE_FUNC(svreinterpret_f16
,_s16
,,)(op
);
1337 // CHECK-LABEL: @test_svreinterpret_f16_s32(
1338 // CHECK-NEXT: entry:
1339 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x half>
1340 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1342 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_s32u11__SVInt32_t(
1343 // CPP-CHECK-NEXT: entry:
1344 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x half>
1345 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1347 svfloat16_t
test_svreinterpret_f16_s32(svint32_t op
)
1349 return SVE_ACLE_FUNC(svreinterpret_f16
,_s32
,,)(op
);
1352 // CHECK-LABEL: @test_svreinterpret_f16_s64(
1353 // CHECK-NEXT: entry:
1354 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x half>
1355 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1357 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_s64u11__SVInt64_t(
1358 // CPP-CHECK-NEXT: entry:
1359 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x half>
1360 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1362 svfloat16_t
test_svreinterpret_f16_s64(svint64_t op
)
1364 return SVE_ACLE_FUNC(svreinterpret_f16
,_s64
,,)(op
);
1367 // CHECK-LABEL: @test_svreinterpret_f16_u8(
1368 // CHECK-NEXT: entry:
1369 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x half>
1370 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1372 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_f16_u8u11__SVUint8_t(
1373 // CPP-CHECK-NEXT: entry:
1374 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 8 x half>
1375 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1377 svfloat16_t
test_svreinterpret_f16_u8(svuint8_t op
)
1379 return SVE_ACLE_FUNC(svreinterpret_f16
,_u8
,,)(op
);
1382 // CHECK-LABEL: @test_svreinterpret_f16_u16(
1383 // CHECK-NEXT: entry:
1384 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 8 x half>
1385 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1387 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_u16u12__SVUint16_t(
1388 // CPP-CHECK-NEXT: entry:
1389 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 8 x half>
1390 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1392 svfloat16_t
test_svreinterpret_f16_u16(svuint16_t op
)
1394 return SVE_ACLE_FUNC(svreinterpret_f16
,_u16
,,)(op
);
1397 // CHECK-LABEL: @test_svreinterpret_f16_u32(
1398 // CHECK-NEXT: entry:
1399 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x half>
1400 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1402 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_u32u12__SVUint32_t(
1403 // CPP-CHECK-NEXT: entry:
1404 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 8 x half>
1405 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1407 svfloat16_t
test_svreinterpret_f16_u32(svuint32_t op
)
1409 return SVE_ACLE_FUNC(svreinterpret_f16
,_u32
,,)(op
);
1412 // CHECK-LABEL: @test_svreinterpret_f16_u64(
1413 // CHECK-NEXT: entry:
1414 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x half>
1415 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1417 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_u64u12__SVUint64_t(
1418 // CPP-CHECK-NEXT: entry:
1419 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 8 x half>
1420 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1422 svfloat16_t
test_svreinterpret_f16_u64(svuint64_t op
)
1424 return SVE_ACLE_FUNC(svreinterpret_f16
,_u64
,,)(op
);
1427 // CHECK-LABEL: @test_svreinterpret_f16_f16(
1428 // CHECK-NEXT: entry:
1429 // CHECK-NEXT: ret <vscale x 8 x half> [[OP:%.*]]
1431 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_f16u13__SVFloat16_t(
1432 // CPP-CHECK-NEXT: entry:
1433 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[OP:%.*]]
1435 svfloat16_t
test_svreinterpret_f16_f16(svfloat16_t op
)
1437 return SVE_ACLE_FUNC(svreinterpret_f16
,_f16
,,)(op
);
1440 // CHECK-LABEL: @test_svreinterpret_f16_f32(
1441 // CHECK-NEXT: entry:
1442 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 8 x half>
1443 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1445 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_f32u13__SVFloat32_t(
1446 // CPP-CHECK-NEXT: entry:
1447 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 8 x half>
1448 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1450 svfloat16_t
test_svreinterpret_f16_f32(svfloat32_t op
)
1452 return SVE_ACLE_FUNC(svreinterpret_f16
,_f32
,,)(op
);
1455 // CHECK-LABEL: @test_svreinterpret_f16_f64(
1456 // CHECK-NEXT: entry:
1457 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 8 x half>
1458 // CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1460 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f16_f64u13__SVFloat64_t(
1461 // CPP-CHECK-NEXT: entry:
1462 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 8 x half>
1463 // CPP-CHECK-NEXT: ret <vscale x 8 x half> [[TMP0]]
1465 svfloat16_t
test_svreinterpret_f16_f64(svfloat64_t op
)
1467 return SVE_ACLE_FUNC(svreinterpret_f16
,_f64
,,)(op
);
1470 // CHECK-LABEL: @test_svreinterpret_f32_s8(
1471 // CHECK-NEXT: entry:
1472 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x float>
1473 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1475 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_f32_s8u10__SVInt8_t(
1476 // CPP-CHECK-NEXT: entry:
1477 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x float>
1478 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1480 svfloat32_t
test_svreinterpret_f32_s8(svint8_t op
)
1482 return SVE_ACLE_FUNC(svreinterpret_f32
,_s8
,,)(op
);
1485 // CHECK-LABEL: @test_svreinterpret_f32_s16(
1486 // CHECK-NEXT: entry:
1487 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x float>
1488 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1490 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_s16u11__SVInt16_t(
1491 // CPP-CHECK-NEXT: entry:
1492 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x float>
1493 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1495 svfloat32_t
test_svreinterpret_f32_s16(svint16_t op
)
1497 return SVE_ACLE_FUNC(svreinterpret_f32
,_s16
,,)(op
);
1500 // CHECK-LABEL: @test_svreinterpret_f32_s32(
1501 // CHECK-NEXT: entry:
1502 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 4 x float>
1503 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1505 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_s32u11__SVInt32_t(
1506 // CPP-CHECK-NEXT: entry:
1507 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 4 x float>
1508 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1510 svfloat32_t
test_svreinterpret_f32_s32(svint32_t op
)
1512 return SVE_ACLE_FUNC(svreinterpret_f32
,_s32
,,)(op
);
1515 // CHECK-LABEL: @test_svreinterpret_f32_s64(
1516 // CHECK-NEXT: entry:
1517 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x float>
1518 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1520 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_s64u11__SVInt64_t(
1521 // CPP-CHECK-NEXT: entry:
1522 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x float>
1523 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1525 svfloat32_t
test_svreinterpret_f32_s64(svint64_t op
)
1527 return SVE_ACLE_FUNC(svreinterpret_f32
,_s64
,,)(op
);
1530 // CHECK-LABEL: @test_svreinterpret_f32_u8(
1531 // CHECK-NEXT: entry:
1532 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x float>
1533 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1535 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_f32_u8u11__SVUint8_t(
1536 // CPP-CHECK-NEXT: entry:
1537 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 4 x float>
1538 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1540 svfloat32_t
test_svreinterpret_f32_u8(svuint8_t op
)
1542 return SVE_ACLE_FUNC(svreinterpret_f32
,_u8
,,)(op
);
1545 // CHECK-LABEL: @test_svreinterpret_f32_u16(
1546 // CHECK-NEXT: entry:
1547 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x float>
1548 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1550 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_u16u12__SVUint16_t(
1551 // CPP-CHECK-NEXT: entry:
1552 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 4 x float>
1553 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1555 svfloat32_t
test_svreinterpret_f32_u16(svuint16_t op
)
1557 return SVE_ACLE_FUNC(svreinterpret_f32
,_u16
,,)(op
);
1560 // CHECK-LABEL: @test_svreinterpret_f32_u32(
1561 // CHECK-NEXT: entry:
1562 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 4 x float>
1563 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1565 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_u32u12__SVUint32_t(
1566 // CPP-CHECK-NEXT: entry:
1567 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 4 x float>
1568 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1570 svfloat32_t
test_svreinterpret_f32_u32(svuint32_t op
)
1572 return SVE_ACLE_FUNC(svreinterpret_f32
,_u32
,,)(op
);
1575 // CHECK-LABEL: @test_svreinterpret_f32_u64(
1576 // CHECK-NEXT: entry:
1577 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x float>
1578 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1580 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_u64u12__SVUint64_t(
1581 // CPP-CHECK-NEXT: entry:
1582 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 4 x float>
1583 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1585 svfloat32_t
test_svreinterpret_f32_u64(svuint64_t op
)
1587 return SVE_ACLE_FUNC(svreinterpret_f32
,_u64
,,)(op
);
1590 // CHECK-LABEL: @test_svreinterpret_f32_f16(
1591 // CHECK-NEXT: entry:
1592 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 4 x float>
1593 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1595 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_f16u13__SVFloat16_t(
1596 // CPP-CHECK-NEXT: entry:
1597 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 4 x float>
1598 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1600 svfloat32_t
test_svreinterpret_f32_f16(svfloat16_t op
)
1602 return SVE_ACLE_FUNC(svreinterpret_f32
,_f16
,,)(op
);
1605 // CHECK-LABEL: @test_svreinterpret_f32_f32(
1606 // CHECK-NEXT: entry:
1607 // CHECK-NEXT: ret <vscale x 4 x float> [[OP:%.*]]
1609 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_f32u13__SVFloat32_t(
1610 // CPP-CHECK-NEXT: entry:
1611 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[OP:%.*]]
1613 svfloat32_t
test_svreinterpret_f32_f32(svfloat32_t op
)
1615 return SVE_ACLE_FUNC(svreinterpret_f32
,_f32
,,)(op
);
1618 // CHECK-LABEL: @test_svreinterpret_f32_f64(
1619 // CHECK-NEXT: entry:
1620 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 4 x float>
1621 // CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1623 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f32_f64u13__SVFloat64_t(
1624 // CPP-CHECK-NEXT: entry:
1625 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x double> [[OP:%.*]] to <vscale x 4 x float>
1626 // CPP-CHECK-NEXT: ret <vscale x 4 x float> [[TMP0]]
1628 svfloat32_t
test_svreinterpret_f32_f64(svfloat64_t op
)
1630 return SVE_ACLE_FUNC(svreinterpret_f32
,_f64
,,)(op
);
1633 // CHECK-LABEL: @test_svreinterpret_f64_s8(
1634 // CHECK-NEXT: entry:
1635 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x double>
1636 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1638 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_f64_s8u10__SVInt8_t(
1639 // CPP-CHECK-NEXT: entry:
1640 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x double>
1641 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1643 svfloat64_t
test_svreinterpret_f64_s8(svint8_t op
)
1645 return SVE_ACLE_FUNC(svreinterpret_f64
,_s8
,,)(op
);
1648 // CHECK-LABEL: @test_svreinterpret_f64_s16(
1649 // CHECK-NEXT: entry:
1650 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x double>
1651 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1653 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_s16u11__SVInt16_t(
1654 // CPP-CHECK-NEXT: entry:
1655 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x double>
1656 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1658 svfloat64_t
test_svreinterpret_f64_s16(svint16_t op
)
1660 return SVE_ACLE_FUNC(svreinterpret_f64
,_s16
,,)(op
);
1663 // CHECK-LABEL: @test_svreinterpret_f64_s32(
1664 // CHECK-NEXT: entry:
1665 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x double>
1666 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1668 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_s32u11__SVInt32_t(
1669 // CPP-CHECK-NEXT: entry:
1670 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x double>
1671 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1673 svfloat64_t
test_svreinterpret_f64_s32(svint32_t op
)
1675 return SVE_ACLE_FUNC(svreinterpret_f64
,_s32
,,)(op
);
1678 // CHECK-LABEL: @test_svreinterpret_f64_s64(
1679 // CHECK-NEXT: entry:
1680 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 2 x double>
1681 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1683 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_s64u11__SVInt64_t(
1684 // CPP-CHECK-NEXT: entry:
1685 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 2 x double>
1686 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1688 svfloat64_t
test_svreinterpret_f64_s64(svint64_t op
)
1690 return SVE_ACLE_FUNC(svreinterpret_f64
,_s64
,,)(op
);
1693 // CHECK-LABEL: @test_svreinterpret_f64_u8(
1694 // CHECK-NEXT: entry:
1695 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x double>
1696 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1698 // CPP-CHECK-LABEL: @_Z25test_svreinterpret_f64_u8u11__SVUint8_t(
1699 // CPP-CHECK-NEXT: entry:
1700 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 16 x i8> [[OP:%.*]] to <vscale x 2 x double>
1701 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1703 svfloat64_t
test_svreinterpret_f64_u8(svuint8_t op
)
1705 return SVE_ACLE_FUNC(svreinterpret_f64
,_u8
,,)(op
);
1708 // CHECK-LABEL: @test_svreinterpret_f64_u16(
1709 // CHECK-NEXT: entry:
1710 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x double>
1711 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1713 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_u16u12__SVUint16_t(
1714 // CPP-CHECK-NEXT: entry:
1715 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x i16> [[OP:%.*]] to <vscale x 2 x double>
1716 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1718 svfloat64_t
test_svreinterpret_f64_u16(svuint16_t op
)
1720 return SVE_ACLE_FUNC(svreinterpret_f64
,_u16
,,)(op
);
1723 // CHECK-LABEL: @test_svreinterpret_f64_u32(
1724 // CHECK-NEXT: entry:
1725 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x double>
1726 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1728 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_u32u12__SVUint32_t(
1729 // CPP-CHECK-NEXT: entry:
1730 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x i32> [[OP:%.*]] to <vscale x 2 x double>
1731 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1733 svfloat64_t
test_svreinterpret_f64_u32(svuint32_t op
)
1735 return SVE_ACLE_FUNC(svreinterpret_f64
,_u32
,,)(op
);
1738 // CHECK-LABEL: @test_svreinterpret_f64_u64(
1739 // CHECK-NEXT: entry:
1740 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 2 x double>
1741 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1743 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_u64u12__SVUint64_t(
1744 // CPP-CHECK-NEXT: entry:
1745 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 2 x i64> [[OP:%.*]] to <vscale x 2 x double>
1746 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1748 svfloat64_t
test_svreinterpret_f64_u64(svuint64_t op
)
1750 return SVE_ACLE_FUNC(svreinterpret_f64
,_u64
,,)(op
);
1753 // CHECK-LABEL: @test_svreinterpret_f64_f16(
1754 // CHECK-NEXT: entry:
1755 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 2 x double>
1756 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1758 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_f16u13__SVFloat16_t(
1759 // CPP-CHECK-NEXT: entry:
1760 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 8 x half> [[OP:%.*]] to <vscale x 2 x double>
1761 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1763 svfloat64_t
test_svreinterpret_f64_f16(svfloat16_t op
)
1765 return SVE_ACLE_FUNC(svreinterpret_f64
,_f16
,,)(op
);
1768 // CHECK-LABEL: @test_svreinterpret_f64_f32(
1769 // CHECK-NEXT: entry:
1770 // CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 2 x double>
1771 // CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1773 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_f32u13__SVFloat32_t(
1774 // CPP-CHECK-NEXT: entry:
1775 // CPP-CHECK-NEXT: [[TMP0:%.*]] = bitcast <vscale x 4 x float> [[OP:%.*]] to <vscale x 2 x double>
1776 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[TMP0]]
1778 svfloat64_t
test_svreinterpret_f64_f32(svfloat32_t op
)
1780 return SVE_ACLE_FUNC(svreinterpret_f64
,_f32
,,)(op
);
1783 // CHECK-LABEL: @test_svreinterpret_f64_f64(
1784 // CHECK-NEXT: entry:
1785 // CHECK-NEXT: ret <vscale x 2 x double> [[OP:%.*]]
1787 // CPP-CHECK-LABEL: @_Z26test_svreinterpret_f64_f64u13__SVFloat64_t(
1788 // CPP-CHECK-NEXT: entry:
1789 // CPP-CHECK-NEXT: ret <vscale x 2 x double> [[OP:%.*]]
1791 svfloat64_t
test_svreinterpret_f64_f64(svfloat64_t op
)
1793 return SVE_ACLE_FUNC(svreinterpret_f64
,_f64
,,)(op
);