xref: /llvm-project/clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_reinterpret.c (revision db6fa74dfea30c025e5d4c30ca4e31e20b69b04d)
1*db6fa74dSMomchil Velikov // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5
2*db6fa74dSMomchil Velikov #include <arm_neon.h>
3*db6fa74dSMomchil Velikov // RUN: %clang_cc1        -triple aarch64-none-linux-gnu -target-feature +neon -target-feature +bf16 -target-feature +fp8 -target-feature +fp8fma -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg | FileCheck %s
4*db6fa74dSMomchil Velikov // RUN: %clang_cc1 -x c++ -triple aarch64-none-linux-gnu -target-feature +neon -target-feature +bf16 -target-feature +fp8 -target-feature +fp8fma -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg | FileCheck %s -check-prefix CHECK-CXX
5*db6fa74dSMomchil Velikov 
6*db6fa74dSMomchil Velikov // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +neon -target-feature +bf16 -target-feature +fp8 -target-feature +fp8fma -disable-O0-optnone -Werror -Wall -S -o /dev/null %s
7*db6fa74dSMomchil Velikov 
8*db6fa74dSMomchil Velikov // REQUIRES: aarch64-registered-target
9*db6fa74dSMomchil Velikov 
10*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_p8_mf8(
11*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0:[0-9]+]] {
12*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
13*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[V]]
14*db6fa74dSMomchil Velikov //
15*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <8 x i8> @_Z24test_vreinterpret_p8_mf813__Mfloat8x8_t(
16*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0:[0-9]+]] {
17*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
18*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[V]]
19*db6fa74dSMomchil Velikov //
20*db6fa74dSMomchil Velikov poly8x8_t test_vreinterpret_p8_mf8(mfloat8x8_t v) {
21*db6fa74dSMomchil Velikov   return vreinterpret_p8_mf8(v);
22*db6fa74dSMomchil Velikov }
23*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <1 x i64> @test_vreinterpret_p64_mf8(
24*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
25*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
26*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x i64>
27*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <1 x i64> [[TMP0]]
28*db6fa74dSMomchil Velikov //
29*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <1 x i64> @_Z25test_vreinterpret_p64_mf813__Mfloat8x8_t(
30*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
31*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
32*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x i64>
33*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <1 x i64> [[TMP0]]
34*db6fa74dSMomchil Velikov //
35*db6fa74dSMomchil Velikov poly64x1_t test_vreinterpret_p64_mf8(mfloat8x8_t v) {
36*db6fa74dSMomchil Velikov   return vreinterpret_p64_mf8(v);
37*db6fa74dSMomchil Velikov }
38*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <4 x i16> @test_vreinterpret_p16_mf8(
39*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
40*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
41*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x i16>
42*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <4 x i16> [[TMP0]]
43*db6fa74dSMomchil Velikov //
44*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <4 x i16> @_Z25test_vreinterpret_p16_mf813__Mfloat8x8_t(
45*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
46*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
47*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x i16>
48*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <4 x i16> [[TMP0]]
49*db6fa74dSMomchil Velikov //
50*db6fa74dSMomchil Velikov poly16x4_t test_vreinterpret_p16_mf8(mfloat8x8_t v) {
51*db6fa74dSMomchil Velikov   return vreinterpret_p16_mf8(v);
52*db6fa74dSMomchil Velikov }
53*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_p8_mf8(
54*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
55*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
56*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[V]]
57*db6fa74dSMomchil Velikov //
58*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <16 x i8> @_Z25test_vreinterpretq_p8_mf814__Mfloat8x16_t(
59*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
60*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
61*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[V]]
62*db6fa74dSMomchil Velikov //
63*db6fa74dSMomchil Velikov poly8x16_t test_vreinterpretq_p8_mf8(mfloat8x16_t v) {
64*db6fa74dSMomchil Velikov   return vreinterpretq_p8_mf8(v);
65*db6fa74dSMomchil Velikov }
66*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local i128 @test_vreinterpretq_p128_mf8(
67*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
68*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
69*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to i128
70*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret i128 [[TMP0]]
71*db6fa74dSMomchil Velikov //
72*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef i128 @_Z27test_vreinterpretq_p128_mf814__Mfloat8x16_t(
73*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
74*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
75*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to i128
76*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret i128 [[TMP0]]
77*db6fa74dSMomchil Velikov //
78*db6fa74dSMomchil Velikov poly128_t test_vreinterpretq_p128_mf8(mfloat8x16_t v) {
79*db6fa74dSMomchil Velikov   return vreinterpretq_p128_mf8(v);
80*db6fa74dSMomchil Velikov }
81*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <2 x i64> @test_vreinterpretq_p64_mf8(
82*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
83*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
84*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x i64>
85*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <2 x i64> [[TMP0]]
86*db6fa74dSMomchil Velikov //
87*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <2 x i64> @_Z26test_vreinterpretq_p64_mf814__Mfloat8x16_t(
88*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
89*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
90*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x i64>
91*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <2 x i64> [[TMP0]]
92*db6fa74dSMomchil Velikov //
93*db6fa74dSMomchil Velikov poly64x2_t test_vreinterpretq_p64_mf8(mfloat8x16_t v) {
94*db6fa74dSMomchil Velikov   return vreinterpretq_p64_mf8(v);
95*db6fa74dSMomchil Velikov }
96*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i16> @test_vreinterpretq_p16_mf8(
97*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
98*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
99*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x i16>
100*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i16> [[TMP0]]
101*db6fa74dSMomchil Velikov //
102*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <8 x i16> @_Z26test_vreinterpretq_p16_mf814__Mfloat8x16_t(
103*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
104*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
105*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x i16>
106*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i16> [[TMP0]]
107*db6fa74dSMomchil Velikov //
108*db6fa74dSMomchil Velikov poly16x8_t test_vreinterpretq_p16_mf8(mfloat8x16_t v) {
109*db6fa74dSMomchil Velikov   return vreinterpretq_p16_mf8(v);
110*db6fa74dSMomchil Velikov }
111*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_u8_mf8(
112*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
113*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
114*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[V]]
115*db6fa74dSMomchil Velikov //
116*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <16 x i8> @_Z25test_vreinterpretq_u8_mf814__Mfloat8x16_t(
117*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
118*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
119*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[V]]
120*db6fa74dSMomchil Velikov //
121*db6fa74dSMomchil Velikov uint8x16_t test_vreinterpretq_u8_mf8(mfloat8x16_t v) {
122*db6fa74dSMomchil Velikov   return vreinterpretq_u8_mf8(v);
123*db6fa74dSMomchil Velikov }
124*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <4 x i32> @test_vreinterpretq_u32_mf8(
125*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
126*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
127*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <4 x i32>
128*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <4 x i32> [[TMP0]]
129*db6fa74dSMomchil Velikov //
130*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <4 x i32> @_Z26test_vreinterpretq_u32_mf814__Mfloat8x16_t(
131*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
132*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
133*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <4 x i32>
134*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <4 x i32> [[TMP0]]
135*db6fa74dSMomchil Velikov //
136*db6fa74dSMomchil Velikov uint32x4_t test_vreinterpretq_u32_mf8(mfloat8x16_t v) {
137*db6fa74dSMomchil Velikov   return vreinterpretq_u32_mf8(v);
138*db6fa74dSMomchil Velikov }
139*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <2 x i64> @test_vreinterpretq_u64_mf8(
140*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
141*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
142*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x i64>
143*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <2 x i64> [[TMP0]]
144*db6fa74dSMomchil Velikov //
145*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <2 x i64> @_Z26test_vreinterpretq_u64_mf814__Mfloat8x16_t(
146*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
147*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
148*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x i64>
149*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <2 x i64> [[TMP0]]
150*db6fa74dSMomchil Velikov //
151*db6fa74dSMomchil Velikov uint64x2_t test_vreinterpretq_u64_mf8(mfloat8x16_t v) {
152*db6fa74dSMomchil Velikov   return vreinterpretq_u64_mf8(v);
153*db6fa74dSMomchil Velikov }
154*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i16> @test_vreinterpretq_u16_mf8(
155*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
156*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
157*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x i16>
158*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i16> [[TMP0]]
159*db6fa74dSMomchil Velikov //
160*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <8 x i16> @_Z26test_vreinterpretq_u16_mf814__Mfloat8x16_t(
161*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
162*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
163*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x i16>
164*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i16> [[TMP0]]
165*db6fa74dSMomchil Velikov //
166*db6fa74dSMomchil Velikov uint16x8_t test_vreinterpretq_u16_mf8(mfloat8x16_t v) {
167*db6fa74dSMomchil Velikov   return vreinterpretq_u16_mf8(v);
168*db6fa74dSMomchil Velikov }
169*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_s8_mf8(
170*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
171*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
172*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[V]]
173*db6fa74dSMomchil Velikov //
174*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <16 x i8> @_Z25test_vreinterpretq_s8_mf814__Mfloat8x16_t(
175*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
176*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
177*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[V]]
178*db6fa74dSMomchil Velikov //
179*db6fa74dSMomchil Velikov int8x16_t test_vreinterpretq_s8_mf8(mfloat8x16_t v) {
180*db6fa74dSMomchil Velikov   return vreinterpretq_s8_mf8(v);
181*db6fa74dSMomchil Velikov }
182*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <2 x double> @test_vreinterpretq_f64_mf8(
183*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
184*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
185*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x double>
186*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <2 x double> [[TMP0]]
187*db6fa74dSMomchil Velikov //
188*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <2 x double> @_Z26test_vreinterpretq_f64_mf814__Mfloat8x16_t(
189*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
190*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
191*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x double>
192*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <2 x double> [[TMP0]]
193*db6fa74dSMomchil Velikov //
194*db6fa74dSMomchil Velikov float64x2_t test_vreinterpretq_f64_mf8(mfloat8x16_t v) {
195*db6fa74dSMomchil Velikov   return vreinterpretq_f64_mf8(v);
196*db6fa74dSMomchil Velikov }
197*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <4 x float> @test_vreinterpretq_f32_mf8(
198*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
199*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
200*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <4 x float>
201*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <4 x float> [[TMP0]]
202*db6fa74dSMomchil Velikov //
203*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <4 x float> @_Z26test_vreinterpretq_f32_mf814__Mfloat8x16_t(
204*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
205*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
206*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <4 x float>
207*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <4 x float> [[TMP0]]
208*db6fa74dSMomchil Velikov //
209*db6fa74dSMomchil Velikov float32x4_t test_vreinterpretq_f32_mf8(mfloat8x16_t v) {
210*db6fa74dSMomchil Velikov   return vreinterpretq_f32_mf8(v);
211*db6fa74dSMomchil Velikov }
212*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x half> @test_vreinterpretq_f16_mf8(
213*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
214*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
215*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x half>
216*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x half> [[TMP0]]
217*db6fa74dSMomchil Velikov //
218*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <8 x half> @_Z26test_vreinterpretq_f16_mf814__Mfloat8x16_t(
219*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
220*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
221*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x half>
222*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x half> [[TMP0]]
223*db6fa74dSMomchil Velikov //
224*db6fa74dSMomchil Velikov float16x8_t test_vreinterpretq_f16_mf8(mfloat8x16_t v) {
225*db6fa74dSMomchil Velikov   return vreinterpretq_f16_mf8(v);
226*db6fa74dSMomchil Velikov }
227*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <4 x i32> @test_vreinterpretq_s32_mf8(
228*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
229*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
230*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <4 x i32>
231*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <4 x i32> [[TMP0]]
232*db6fa74dSMomchil Velikov //
233*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <4 x i32> @_Z26test_vreinterpretq_s32_mf814__Mfloat8x16_t(
234*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
235*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
236*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <4 x i32>
237*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <4 x i32> [[TMP0]]
238*db6fa74dSMomchil Velikov //
239*db6fa74dSMomchil Velikov int32x4_t test_vreinterpretq_s32_mf8(mfloat8x16_t v) {
240*db6fa74dSMomchil Velikov   return vreinterpretq_s32_mf8(v);
241*db6fa74dSMomchil Velikov }
242*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <2 x i64> @test_vreinterpretq_s64_mf8(
243*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
244*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
245*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x i64>
246*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <2 x i64> [[TMP0]]
247*db6fa74dSMomchil Velikov //
248*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <2 x i64> @_Z26test_vreinterpretq_s64_mf814__Mfloat8x16_t(
249*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
250*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
251*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <2 x i64>
252*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <2 x i64> [[TMP0]]
253*db6fa74dSMomchil Velikov //
254*db6fa74dSMomchil Velikov int64x2_t test_vreinterpretq_s64_mf8(mfloat8x16_t v) {
255*db6fa74dSMomchil Velikov   return vreinterpretq_s64_mf8(v);
256*db6fa74dSMomchil Velikov }
257*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_p8(
258*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
259*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
260*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[V]]
261*db6fa74dSMomchil Velikov //
262*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z25test_vreinterpretq_mf8_p812__Poly8x16_t(
263*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
264*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
265*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[V]]
266*db6fa74dSMomchil Velikov //
267*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_p8(poly8x16_t v) {
268*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_p8(v);
269*db6fa74dSMomchil Velikov }
270*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_p128(
271*db6fa74dSMomchil Velikov // CHECK-SAME: i128 noundef [[V:%.*]]) #[[ATTR0]] {
272*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
273*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast i128 [[V]] to <16 x i8>
274*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
275*db6fa74dSMomchil Velikov //
276*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z27test_vreinterpretq_mf8_p128o(
277*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: i128 noundef [[V:%.*]]) #[[ATTR0]] {
278*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
279*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast i128 [[V]] to <16 x i8>
280*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
281*db6fa74dSMomchil Velikov //
282*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_p128(poly128_t v) {
283*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_p128(v);
284*db6fa74dSMomchil Velikov }
285*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_p64(
286*db6fa74dSMomchil Velikov // CHECK-SAME: <2 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
287*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
288*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <2 x i64> [[V]] to <16 x i8>
289*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
290*db6fa74dSMomchil Velikov //
291*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_p6412__Poly64x2_t(
292*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <2 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
293*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
294*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <2 x i64> [[V]] to <16 x i8>
295*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
296*db6fa74dSMomchil Velikov //
297*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_p64(poly64x2_t v) {
298*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_p64(v);
299*db6fa74dSMomchil Velikov }
300*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_p16(
301*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
302*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
303*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i16> [[V]] to <16 x i8>
304*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
305*db6fa74dSMomchil Velikov //
306*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_p1612__Poly16x8_t(
307*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
308*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
309*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i16> [[V]] to <16 x i8>
310*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
311*db6fa74dSMomchil Velikov //
312*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_p16(poly16x8_t v) {
313*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_p16(v);
314*db6fa74dSMomchil Velikov }
315*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_u8(
316*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
317*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
318*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[V]]
319*db6fa74dSMomchil Velikov //
320*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z25test_vreinterpretq_mf8_u812__Uint8x16_t(
321*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
322*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
323*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[V]]
324*db6fa74dSMomchil Velikov //
325*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_u8(uint8x16_t v) {
326*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_u8(v);
327*db6fa74dSMomchil Velikov }
328*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_u32(
329*db6fa74dSMomchil Velikov // CHECK-SAME: <4 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
330*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
331*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <4 x i32> [[V]] to <16 x i8>
332*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
333*db6fa74dSMomchil Velikov //
334*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_u3212__Uint32x4_t(
335*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <4 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
336*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
337*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <4 x i32> [[V]] to <16 x i8>
338*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
339*db6fa74dSMomchil Velikov //
340*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_u32(uint32x4_t v) {
341*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_u32(v);
342*db6fa74dSMomchil Velikov }
343*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_u64(
344*db6fa74dSMomchil Velikov // CHECK-SAME: <2 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
345*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
346*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <2 x i64> [[V]] to <16 x i8>
347*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
348*db6fa74dSMomchil Velikov //
349*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_u6412__Uint64x2_t(
350*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <2 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
351*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
352*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <2 x i64> [[V]] to <16 x i8>
353*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
354*db6fa74dSMomchil Velikov //
355*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_u64(uint64x2_t v) {
356*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_u64(v);
357*db6fa74dSMomchil Velikov }
358*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_u16(
359*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
360*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
361*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i16> [[V]] to <16 x i8>
362*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
363*db6fa74dSMomchil Velikov //
364*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_u1612__Uint16x8_t(
365*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
366*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
367*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i16> [[V]] to <16 x i8>
368*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
369*db6fa74dSMomchil Velikov //
370*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_u16(uint16x8_t v) {
371*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_u16(v);
372*db6fa74dSMomchil Velikov }
373*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_s8(
374*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
375*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
376*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[V]]
377*db6fa74dSMomchil Velikov //
378*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z25test_vreinterpretq_mf8_s811__Int8x16_t(
379*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
380*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
381*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[V]]
382*db6fa74dSMomchil Velikov //
383*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_s8(int8x16_t v) {
384*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_s8(v);
385*db6fa74dSMomchil Velikov }
386*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_f64(
387*db6fa74dSMomchil Velikov // CHECK-SAME: <2 x double> noundef [[V:%.*]]) #[[ATTR0]] {
388*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
389*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <2 x double> [[V]] to <16 x i8>
390*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
391*db6fa74dSMomchil Velikov //
392*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_f6413__Float64x2_t(
393*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <2 x double> noundef [[V:%.*]]) #[[ATTR0]] {
394*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
395*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <2 x double> [[V]] to <16 x i8>
396*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
397*db6fa74dSMomchil Velikov //
398*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_f64(float64x2_t v) {
399*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_f64(v);
400*db6fa74dSMomchil Velikov }
401*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_f32(
402*db6fa74dSMomchil Velikov // CHECK-SAME: <4 x float> noundef [[V:%.*]]) #[[ATTR0]] {
403*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
404*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <4 x float> [[V]] to <16 x i8>
405*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
406*db6fa74dSMomchil Velikov //
407*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_f3213__Float32x4_t(
408*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <4 x float> noundef [[V:%.*]]) #[[ATTR0]] {
409*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
410*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <4 x float> [[V]] to <16 x i8>
411*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
412*db6fa74dSMomchil Velikov //
413*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_f32(float32x4_t v) {
414*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_f32(v);
415*db6fa74dSMomchil Velikov }
416*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_f16(
417*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x half> noundef [[V:%.*]]) #[[ATTR0]] {
418*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
419*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x half> [[V]] to <16 x i8>
420*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
421*db6fa74dSMomchil Velikov //
422*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_f1613__Float16x8_t(
423*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x half> noundef [[V:%.*]]) #[[ATTR0]] {
424*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
425*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x half> [[V]] to <16 x i8>
426*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
427*db6fa74dSMomchil Velikov //
428*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_f16(float16x8_t v) {
429*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_f16(v);
430*db6fa74dSMomchil Velikov }
431*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_s32(
432*db6fa74dSMomchil Velikov // CHECK-SAME: <4 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
433*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
434*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <4 x i32> [[V]] to <16 x i8>
435*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
436*db6fa74dSMomchil Velikov //
437*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_s3211__Int32x4_t(
438*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <4 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
439*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
440*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <4 x i32> [[V]] to <16 x i8>
441*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
442*db6fa74dSMomchil Velikov //
443*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_s32(int32x4_t v) {
444*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_s32(v);
445*db6fa74dSMomchil Velikov }
446*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_s64(
447*db6fa74dSMomchil Velikov // CHECK-SAME: <2 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
448*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
449*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <2 x i64> [[V]] to <16 x i8>
450*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
451*db6fa74dSMomchil Velikov //
452*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_s6411__Int64x2_t(
453*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <2 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
454*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
455*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <2 x i64> [[V]] to <16 x i8>
456*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
457*db6fa74dSMomchil Velikov //
458*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_s64(int64x2_t v) {
459*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_s64(v);
460*db6fa74dSMomchil Velikov }
461*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <16 x i8> @test_vreinterpretq_mf8_s16(
462*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
463*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
464*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i16> [[V]] to <16 x i8>
465*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <16 x i8> [[TMP0]]
466*db6fa74dSMomchil Velikov //
467*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <16 x i8> @_Z26test_vreinterpretq_mf8_s1611__Int16x8_t(
468*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
469*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
470*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i16> [[V]] to <16 x i8>
471*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <16 x i8> [[TMP0]]
472*db6fa74dSMomchil Velikov //
473*db6fa74dSMomchil Velikov mfloat8x16_t test_vreinterpretq_mf8_s16(int16x8_t v) {
474*db6fa74dSMomchil Velikov   return vreinterpretq_mf8_s16(v);
475*db6fa74dSMomchil Velikov }
476*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i16> @test_vreinterpretq_s16_mf8(
477*db6fa74dSMomchil Velikov // CHECK-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
478*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
479*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x i16>
480*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i16> [[TMP0]]
481*db6fa74dSMomchil Velikov //
482*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <8 x i16> @_Z26test_vreinterpretq_s16_mf814__Mfloat8x16_t(
483*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <16 x i8> [[V:%.*]]) #[[ATTR0]] {
484*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
485*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <16 x i8> [[V]] to <8 x i16>
486*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i16> [[TMP0]]
487*db6fa74dSMomchil Velikov //
488*db6fa74dSMomchil Velikov int16x8_t test_vreinterpretq_s16_mf8(mfloat8x16_t v) {
489*db6fa74dSMomchil Velikov   return vreinterpretq_s16_mf8(v);
490*db6fa74dSMomchil Velikov }
491*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_u8_mf8(
492*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
493*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
494*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[V]]
495*db6fa74dSMomchil Velikov //
496*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <8 x i8> @_Z24test_vreinterpret_u8_mf813__Mfloat8x8_t(
497*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
498*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
499*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[V]]
500*db6fa74dSMomchil Velikov //
501*db6fa74dSMomchil Velikov uint8x8_t test_vreinterpret_u8_mf8(mfloat8x8_t v) {
502*db6fa74dSMomchil Velikov   return vreinterpret_u8_mf8(v);
503*db6fa74dSMomchil Velikov }
504*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <2 x i32> @test_vreinterpret_u32_mf8(
505*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
506*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
507*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <2 x i32>
508*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <2 x i32> [[TMP0]]
509*db6fa74dSMomchil Velikov //
510*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <2 x i32> @_Z25test_vreinterpret_u32_mf813__Mfloat8x8_t(
511*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
512*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
513*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <2 x i32>
514*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <2 x i32> [[TMP0]]
515*db6fa74dSMomchil Velikov //
516*db6fa74dSMomchil Velikov uint32x2_t test_vreinterpret_u32_mf8(mfloat8x8_t v) {
517*db6fa74dSMomchil Velikov   return vreinterpret_u32_mf8(v);
518*db6fa74dSMomchil Velikov }
519*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <1 x i64> @test_vreinterpret_u64_mf8(
520*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
521*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
522*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x i64>
523*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <1 x i64> [[TMP0]]
524*db6fa74dSMomchil Velikov //
525*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <1 x i64> @_Z25test_vreinterpret_u64_mf813__Mfloat8x8_t(
526*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
527*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
528*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x i64>
529*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <1 x i64> [[TMP0]]
530*db6fa74dSMomchil Velikov //
531*db6fa74dSMomchil Velikov uint64x1_t test_vreinterpret_u64_mf8(mfloat8x8_t v) {
532*db6fa74dSMomchil Velikov   return vreinterpret_u64_mf8(v);
533*db6fa74dSMomchil Velikov }
534*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <4 x i16> @test_vreinterpret_u16_mf8(
535*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
536*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
537*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x i16>
538*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <4 x i16> [[TMP0]]
539*db6fa74dSMomchil Velikov //
540*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <4 x i16> @_Z25test_vreinterpret_u16_mf813__Mfloat8x8_t(
541*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
542*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
543*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x i16>
544*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <4 x i16> [[TMP0]]
545*db6fa74dSMomchil Velikov //
546*db6fa74dSMomchil Velikov uint16x4_t test_vreinterpret_u16_mf8(mfloat8x8_t v) {
547*db6fa74dSMomchil Velikov   return vreinterpret_u16_mf8(v);
548*db6fa74dSMomchil Velikov }
549*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_s8_mf8(
550*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
551*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
552*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[V]]
553*db6fa74dSMomchil Velikov //
554*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <8 x i8> @_Z24test_vreinterpret_s8_mf813__Mfloat8x8_t(
555*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
556*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
557*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[V]]
558*db6fa74dSMomchil Velikov //
559*db6fa74dSMomchil Velikov int8x8_t test_vreinterpret_s8_mf8(mfloat8x8_t v) {
560*db6fa74dSMomchil Velikov   return vreinterpret_s8_mf8(v);
561*db6fa74dSMomchil Velikov }
562*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <1 x double> @test_vreinterpret_f64_mf8(
563*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
564*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
565*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x double>
566*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <1 x double> [[TMP0]]
567*db6fa74dSMomchil Velikov //
568*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <1 x double> @_Z25test_vreinterpret_f64_mf813__Mfloat8x8_t(
569*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
570*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
571*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x double>
572*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <1 x double> [[TMP0]]
573*db6fa74dSMomchil Velikov //
574*db6fa74dSMomchil Velikov float64x1_t test_vreinterpret_f64_mf8(mfloat8x8_t v) {
575*db6fa74dSMomchil Velikov   return vreinterpret_f64_mf8(v);
576*db6fa74dSMomchil Velikov }
577*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <2 x float> @test_vreinterpret_f32_mf8(
578*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
579*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
580*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <2 x float>
581*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <2 x float> [[TMP0]]
582*db6fa74dSMomchil Velikov //
583*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <2 x float> @_Z25test_vreinterpret_f32_mf813__Mfloat8x8_t(
584*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
585*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
586*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <2 x float>
587*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <2 x float> [[TMP0]]
588*db6fa74dSMomchil Velikov //
589*db6fa74dSMomchil Velikov float32x2_t test_vreinterpret_f32_mf8(mfloat8x8_t v) {
590*db6fa74dSMomchil Velikov   return vreinterpret_f32_mf8(v);
591*db6fa74dSMomchil Velikov }
592*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <4 x half> @test_vreinterpret_f16_mf8(
593*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
594*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
595*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x half>
596*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <4 x half> [[TMP0]]
597*db6fa74dSMomchil Velikov //
598*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <4 x half> @_Z25test_vreinterpret_f16_mf813__Mfloat8x8_t(
599*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
600*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
601*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x half>
602*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <4 x half> [[TMP0]]
603*db6fa74dSMomchil Velikov //
604*db6fa74dSMomchil Velikov float16x4_t test_vreinterpret_f16_mf8(mfloat8x8_t v) {
605*db6fa74dSMomchil Velikov   return vreinterpret_f16_mf8(v);
606*db6fa74dSMomchil Velikov }
607*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <2 x i32> @test_vreinterpret_s32_mf8(
608*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
609*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
610*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <2 x i32>
611*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <2 x i32> [[TMP0]]
612*db6fa74dSMomchil Velikov //
613*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <2 x i32> @_Z25test_vreinterpret_s32_mf813__Mfloat8x8_t(
614*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
615*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
616*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <2 x i32>
617*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <2 x i32> [[TMP0]]
618*db6fa74dSMomchil Velikov //
619*db6fa74dSMomchil Velikov int32x2_t test_vreinterpret_s32_mf8(mfloat8x8_t v) {
620*db6fa74dSMomchil Velikov   return vreinterpret_s32_mf8(v);
621*db6fa74dSMomchil Velikov }
622*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <1 x i64> @test_vreinterpret_s64_mf8(
623*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
624*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
625*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x i64>
626*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <1 x i64> [[TMP0]]
627*db6fa74dSMomchil Velikov //
628*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <1 x i64> @_Z25test_vreinterpret_s64_mf813__Mfloat8x8_t(
629*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
630*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
631*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <1 x i64>
632*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <1 x i64> [[TMP0]]
633*db6fa74dSMomchil Velikov //
634*db6fa74dSMomchil Velikov int64x1_t test_vreinterpret_s64_mf8(mfloat8x8_t v) {
635*db6fa74dSMomchil Velikov   return vreinterpret_s64_mf8(v);
636*db6fa74dSMomchil Velikov }
637*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_p8(
638*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
639*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
640*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[V]]
641*db6fa74dSMomchil Velikov //
642*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z24test_vreinterpret_mf8_p811__Poly8x8_t(
643*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
644*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
645*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[V]]
646*db6fa74dSMomchil Velikov //
647*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_p8(poly8x8_t v) {
648*db6fa74dSMomchil Velikov   return vreinterpret_mf8_p8(v);
649*db6fa74dSMomchil Velikov }
650*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_p64(
651*db6fa74dSMomchil Velikov // CHECK-SAME: <1 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
652*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
653*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <1 x i64> [[V]] to <8 x i8>
654*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
655*db6fa74dSMomchil Velikov //
656*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_p6412__Poly64x1_t(
657*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <1 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
658*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
659*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <1 x i64> [[V]] to <8 x i8>
660*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
661*db6fa74dSMomchil Velikov //
662*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_p64(poly64x1_t v) {
663*db6fa74dSMomchil Velikov   return vreinterpret_mf8_p64(v);
664*db6fa74dSMomchil Velikov }
665*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_p16(
666*db6fa74dSMomchil Velikov // CHECK-SAME: <4 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
667*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
668*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <4 x i16> [[V]] to <8 x i8>
669*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
670*db6fa74dSMomchil Velikov //
671*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_p1612__Poly16x4_t(
672*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <4 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
673*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
674*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <4 x i16> [[V]] to <8 x i8>
675*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
676*db6fa74dSMomchil Velikov //
677*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_p16(poly16x4_t v) {
678*db6fa74dSMomchil Velikov   return vreinterpret_mf8_p16(v);
679*db6fa74dSMomchil Velikov }
680*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_u8(
681*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
682*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
683*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[V]]
684*db6fa74dSMomchil Velikov //
685*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z24test_vreinterpret_mf8_u811__Uint8x8_t(
686*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
687*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
688*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[V]]
689*db6fa74dSMomchil Velikov //
690*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_u8(uint8x8_t v) {
691*db6fa74dSMomchil Velikov   return vreinterpret_mf8_u8(v);
692*db6fa74dSMomchil Velikov }
693*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_u32(
694*db6fa74dSMomchil Velikov // CHECK-SAME: <2 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
695*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
696*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <2 x i32> [[V]] to <8 x i8>
697*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
698*db6fa74dSMomchil Velikov //
699*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_u3212__Uint32x2_t(
700*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <2 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
701*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
702*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <2 x i32> [[V]] to <8 x i8>
703*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
704*db6fa74dSMomchil Velikov //
705*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_u32(uint32x2_t v) {
706*db6fa74dSMomchil Velikov   return vreinterpret_mf8_u32(v);
707*db6fa74dSMomchil Velikov }
708*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_u64(
709*db6fa74dSMomchil Velikov // CHECK-SAME: <1 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
710*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
711*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <1 x i64> [[V]] to <8 x i8>
712*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
713*db6fa74dSMomchil Velikov //
714*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_u6412__Uint64x1_t(
715*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <1 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
716*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
717*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <1 x i64> [[V]] to <8 x i8>
718*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
719*db6fa74dSMomchil Velikov //
720*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_u64(uint64x1_t v) {
721*db6fa74dSMomchil Velikov   return vreinterpret_mf8_u64(v);
722*db6fa74dSMomchil Velikov }
723*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_u16(
724*db6fa74dSMomchil Velikov // CHECK-SAME: <4 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
725*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
726*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <4 x i16> [[V]] to <8 x i8>
727*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
728*db6fa74dSMomchil Velikov //
729*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_u1612__Uint16x4_t(
730*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <4 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
731*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
732*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <4 x i16> [[V]] to <8 x i8>
733*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
734*db6fa74dSMomchil Velikov //
735*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_u16(uint16x4_t v) {
736*db6fa74dSMomchil Velikov   return vreinterpret_mf8_u16(v);
737*db6fa74dSMomchil Velikov }
738*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_s8(
739*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
740*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
741*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[V]]
742*db6fa74dSMomchil Velikov //
743*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z24test_vreinterpret_mf8_s810__Int8x8_t(
744*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> noundef [[V:%.*]]) #[[ATTR0]] {
745*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
746*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[V]]
747*db6fa74dSMomchil Velikov //
748*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_s8(int8x8_t v) {
749*db6fa74dSMomchil Velikov   return vreinterpret_mf8_s8(v);
750*db6fa74dSMomchil Velikov }
751*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_f64(
752*db6fa74dSMomchil Velikov // CHECK-SAME: <1 x double> noundef [[V:%.*]]) #[[ATTR0]] {
753*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
754*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <1 x double> [[V]] to <8 x i8>
755*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
756*db6fa74dSMomchil Velikov //
757*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_f6413__Float64x1_t(
758*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <1 x double> noundef [[V:%.*]]) #[[ATTR0]] {
759*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
760*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <1 x double> [[V]] to <8 x i8>
761*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
762*db6fa74dSMomchil Velikov //
763*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_f64(float64x1_t v) {
764*db6fa74dSMomchil Velikov   return vreinterpret_mf8_f64(v);
765*db6fa74dSMomchil Velikov }
766*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_f32(
767*db6fa74dSMomchil Velikov // CHECK-SAME: <2 x float> noundef [[V:%.*]]) #[[ATTR0]] {
768*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
769*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <2 x float> [[V]] to <8 x i8>
770*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
771*db6fa74dSMomchil Velikov //
772*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_f3213__Float32x2_t(
773*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <2 x float> noundef [[V:%.*]]) #[[ATTR0]] {
774*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
775*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <2 x float> [[V]] to <8 x i8>
776*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
777*db6fa74dSMomchil Velikov //
778*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_f32(float32x2_t v) {
779*db6fa74dSMomchil Velikov   return vreinterpret_mf8_f32(v);
780*db6fa74dSMomchil Velikov }
781*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_f16(
782*db6fa74dSMomchil Velikov // CHECK-SAME: <4 x half> noundef [[V:%.*]]) #[[ATTR0]] {
783*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
784*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <4 x half> [[V]] to <8 x i8>
785*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
786*db6fa74dSMomchil Velikov //
787*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_f1613__Float16x4_t(
788*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <4 x half> noundef [[V:%.*]]) #[[ATTR0]] {
789*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
790*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <4 x half> [[V]] to <8 x i8>
791*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
792*db6fa74dSMomchil Velikov //
793*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_f16(float16x4_t v) {
794*db6fa74dSMomchil Velikov   return vreinterpret_mf8_f16(v);
795*db6fa74dSMomchil Velikov }
796*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_s32(
797*db6fa74dSMomchil Velikov // CHECK-SAME: <2 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
798*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
799*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <2 x i32> [[V]] to <8 x i8>
800*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
801*db6fa74dSMomchil Velikov //
802*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_s3211__Int32x2_t(
803*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <2 x i32> noundef [[V:%.*]]) #[[ATTR0]] {
804*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
805*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <2 x i32> [[V]] to <8 x i8>
806*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
807*db6fa74dSMomchil Velikov //
808*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_s32(int32x2_t v) {
809*db6fa74dSMomchil Velikov   return vreinterpret_mf8_s32(v);
810*db6fa74dSMomchil Velikov }
811*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_s64(
812*db6fa74dSMomchil Velikov // CHECK-SAME: <1 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
813*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
814*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <1 x i64> [[V]] to <8 x i8>
815*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
816*db6fa74dSMomchil Velikov //
817*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_s6411__Int64x1_t(
818*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <1 x i64> noundef [[V:%.*]]) #[[ATTR0]] {
819*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
820*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <1 x i64> [[V]] to <8 x i8>
821*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
822*db6fa74dSMomchil Velikov //
823*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_s64(int64x1_t v) {
824*db6fa74dSMomchil Velikov   return vreinterpret_mf8_s64(v);
825*db6fa74dSMomchil Velikov }
826*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <8 x i8> @test_vreinterpret_mf8_s16(
827*db6fa74dSMomchil Velikov // CHECK-SAME: <4 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
828*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
829*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <4 x i16> [[V]] to <8 x i8>
830*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <8 x i8> [[TMP0]]
831*db6fa74dSMomchil Velikov //
832*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z25test_vreinterpret_mf8_s1611__Int16x4_t(
833*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <4 x i16> noundef [[V:%.*]]) #[[ATTR0]] {
834*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
835*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <4 x i16> [[V]] to <8 x i8>
836*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <8 x i8> [[TMP0]]
837*db6fa74dSMomchil Velikov //
838*db6fa74dSMomchil Velikov mfloat8x8_t test_vreinterpret_mf8_s16(int16x4_t v) {
839*db6fa74dSMomchil Velikov   return vreinterpret_mf8_s16(v);
840*db6fa74dSMomchil Velikov }
841*db6fa74dSMomchil Velikov // CHECK-LABEL: define dso_local <4 x i16> @test_vreinterpret_s16_mf8(
842*db6fa74dSMomchil Velikov // CHECK-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
843*db6fa74dSMomchil Velikov // CHECK-NEXT:  [[ENTRY:.*:]]
844*db6fa74dSMomchil Velikov // CHECK-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x i16>
845*db6fa74dSMomchil Velikov // CHECK-NEXT:    ret <4 x i16> [[TMP0]]
846*db6fa74dSMomchil Velikov //
847*db6fa74dSMomchil Velikov // CHECK-CXX-LABEL: define dso_local noundef <4 x i16> @_Z25test_vreinterpret_s16_mf813__Mfloat8x8_t(
848*db6fa74dSMomchil Velikov // CHECK-CXX-SAME: <8 x i8> [[V:%.*]]) #[[ATTR0]] {
849*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:  [[ENTRY:.*:]]
850*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    [[TMP0:%.*]] = bitcast <8 x i8> [[V]] to <4 x i16>
851*db6fa74dSMomchil Velikov // CHECK-CXX-NEXT:    ret <4 x i16> [[TMP0]]
852*db6fa74dSMomchil Velikov //
853*db6fa74dSMomchil Velikov int16x4_t test_vreinterpret_s16_mf8(mfloat8x8_t v) {
854*db6fa74dSMomchil Velikov   return vreinterpret_s16_mf8(v);
855*db6fa74dSMomchil Velikov }
856