xref: /aosp_15_r20/external/llvm/test/CodeGen/AArch64/fp16-v8-instructions.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -asm-verbose=false -mtriple=aarch64-none-eabi | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @add_h(<8 x half> %a, <8 x half> %b) {
4*9880d681SAndroid Build Coastguard Workerentry:
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: add_h:
6*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
7*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
8*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
9*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
10*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
11*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
12*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
13*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
14*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
15*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
16*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
17*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
18*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
19*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
20*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
21*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
22*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
23*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
24*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
25*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
26*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
27*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
28*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
29*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fadd
30*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
31*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
32*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
33*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
34*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
35*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
36*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
37*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
38*9880d681SAndroid Build Coastguard Worker  %0 = fadd <8 x half> %a, %b
39*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %0
40*9880d681SAndroid Build Coastguard Worker}
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @sub_h(<8 x half> %a, <8 x half> %b) {
44*9880d681SAndroid Build Coastguard Workerentry:
45*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sub_h:
46*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
47*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
48*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
49*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
50*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
51*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
52*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
53*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
54*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
55*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
56*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
57*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
58*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
59*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
60*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
61*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
62*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
63*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
64*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
65*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
66*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
67*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
68*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
69*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fsub
70*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
71*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
72*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
73*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
74*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
75*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
76*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
77*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
78*9880d681SAndroid Build Coastguard Worker  %0 = fsub <8 x half> %a, %b
79*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %0
80*9880d681SAndroid Build Coastguard Worker}
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @mul_h(<8 x half> %a, <8 x half> %b) {
84*9880d681SAndroid Build Coastguard Workerentry:
85*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul_h:
86*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
87*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
88*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
89*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
90*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
91*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
92*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
93*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
94*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
95*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
96*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
97*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
98*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
99*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
100*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
101*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
102*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
103*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
104*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
105*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
106*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
107*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
108*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
109*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fmul
110*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
111*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
112*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
113*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
114*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
115*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
116*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
117*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
118*9880d681SAndroid Build Coastguard Worker  %0 = fmul <8 x half> %a, %b
119*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %0
120*9880d681SAndroid Build Coastguard Worker}
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @div_h(<8 x half> %a, <8 x half> %b) {
124*9880d681SAndroid Build Coastguard Workerentry:
125*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: div_h:
126*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
127*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
128*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
129*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
130*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
131*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
132*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
133*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
134*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
135*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
136*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
137*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
138*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
139*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
140*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
141*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
142*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
143*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
144*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
145*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
146*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
147*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
148*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
149*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fdiv
150*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
151*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
152*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
153*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
154*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
155*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
156*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt
157*9880d681SAndroid Build Coastguard Worker; CHECK: fcvt
158*9880d681SAndroid Build Coastguard Worker  %0 = fdiv <8 x half> %a, %b
159*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %0
160*9880d681SAndroid Build Coastguard Worker}
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @load_h(<8 x half>* %a) {
164*9880d681SAndroid Build Coastguard Workerentry:
165*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: load_h:
166*9880d681SAndroid Build Coastguard Worker; CHECK: ldr q0, [x0]
167*9880d681SAndroid Build Coastguard Worker  %0 = load <8 x half>, <8 x half>* %a, align 4
168*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %0
169*9880d681SAndroid Build Coastguard Worker}
170*9880d681SAndroid Build Coastguard Worker
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Workerdefine void @store_h(<8 x half>* %a, <8 x half> %b) {
173*9880d681SAndroid Build Coastguard Workerentry:
174*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: store_h:
175*9880d681SAndroid Build Coastguard Worker; CHECK: str q0, [x0]
176*9880d681SAndroid Build Coastguard Worker  store <8 x half> %b, <8 x half>* %a, align 4
177*9880d681SAndroid Build Coastguard Worker  ret void
178*9880d681SAndroid Build Coastguard Worker}
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @s_to_h(<8 x float> %a) {
181*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: s_to_h:
182*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v0.4h, v0.4s
183*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn [[REG:v[0-9+]]].4h, v1.4s
184*9880d681SAndroid Build Coastguard Worker; CHECK: ins v0.d[1], [[REG]].d[0]
185*9880d681SAndroid Build Coastguard Worker  %1 = fptrunc <8 x float> %a to <8 x half>
186*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
187*9880d681SAndroid Build Coastguard Worker}
188*9880d681SAndroid Build Coastguard Worker
189*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @d_to_h(<8 x double> %a) {
190*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: d_to_h:
191*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1]
192*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1]
193*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1]
194*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1]
195*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
196*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
197*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
198*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
199*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
200*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
201*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
202*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt h
203*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
204*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
205*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
206*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
207*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
208*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
209*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
210*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins v{{[0-9]+}}.h
211*9880d681SAndroid Build Coastguard Worker  %1 = fptrunc <8 x double> %a to <8 x half>
212*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
213*9880d681SAndroid Build Coastguard Worker}
214*9880d681SAndroid Build Coastguard Worker
215*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @h_to_s(<8 x half> %a) {
216*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: h_to_s:
217*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtl2 v1.4s, v0.8h
218*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtl v0.4s, v0.4h
219*9880d681SAndroid Build Coastguard Worker  %1 = fpext <8 x half> %a to <8 x float>
220*9880d681SAndroid Build Coastguard Worker  ret <8 x float> %1
221*9880d681SAndroid Build Coastguard Worker}
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @h_to_d(<8 x half> %a) {
224*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: h_to_d:
225*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
226*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
227*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
228*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
229*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
230*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
231*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
232*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt d
233*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins
234*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins
235*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins
236*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins
237*9880d681SAndroid Build Coastguard Worker  %1 = fpext <8 x half> %a to <8 x double>
238*9880d681SAndroid Build Coastguard Worker  ret <8 x double> %1
239*9880d681SAndroid Build Coastguard Worker}
240*9880d681SAndroid Build Coastguard Worker
241*9880d681SAndroid Build Coastguard Worker
242*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @bitcast_i_to_h(float, <8 x i16> %a) {
243*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bitcast_i_to_h:
244*9880d681SAndroid Build Coastguard Worker; CHECK: mov v0.16b, v1.16b
245*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <8 x i16> %a to <8 x half>
246*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %2
247*9880d681SAndroid Build Coastguard Worker}
248*9880d681SAndroid Build Coastguard Worker
249*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @bitcast_h_to_i(float, <8 x half> %a) {
250*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bitcast_h_to_i:
251*9880d681SAndroid Build Coastguard Worker; CHECK: mov v0.16b, v1.16b
252*9880d681SAndroid Build Coastguard Worker  %2 = bitcast <8 x half> %a to <8 x i16>
253*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %2
254*9880d681SAndroid Build Coastguard Worker}
255*9880d681SAndroid Build Coastguard Worker
256*9880d681SAndroid Build Coastguard Worker
257*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @sitofp_i8(<8 x i8> %a) #0 {
258*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i8:
259*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshll v[[REG1:[0-9]+]].8h, v0.8b, #0
260*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshll2 [[LO:v[0-9]+\.4s]], v[[REG1]].8h, #0
261*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshll  [[HI:v[0-9]+\.4s]], v[[REG1]].4h, #0
262*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[HIF:v[0-9]+\.4s]], [[HI]]
263*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[LOF:v[0-9]+\.4s]], [[LO]]
264*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]]
265*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v0.4h, [[HIF]]
266*9880d681SAndroid Build Coastguard Worker; CHECK: ins v0.d[1], v[[LOREG]].d[0]
267*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i8> %a to <8 x half>
268*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
269*9880d681SAndroid Build Coastguard Worker}
270*9880d681SAndroid Build Coastguard Worker
271*9880d681SAndroid Build Coastguard Worker
272*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @sitofp_i16(<8 x i16> %a) #0 {
273*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i16:
274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshll2 [[LO:v[0-9]+\.4s]], v0.8h, #0
275*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshll  [[HI:v[0-9]+\.4s]], v0.4h, #0
276*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[HIF:v[0-9]+\.4s]], [[HI]]
277*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[LOF:v[0-9]+\.4s]], [[LO]]
278*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]]
279*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v0.4h, [[HIF]]
280*9880d681SAndroid Build Coastguard Worker; CHECK: ins v0.d[1], v[[LOREG]].d[0]
281*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i16> %a to <8 x half>
282*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
283*9880d681SAndroid Build Coastguard Worker}
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Worker
286*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @sitofp_i32(<8 x i32> %a) #0 {
287*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i32:
288*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[OP1:v[0-9]+\.4s]], v0.4s
289*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[OP2:v[0-9]+\.4s]], v1.4s
290*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v[[REG:[0-9]+]].4h, [[OP2]]
291*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v0.4h, [[OP1]]
292*9880d681SAndroid Build Coastguard Worker; CHECK: ins v0.d[1], v[[REG]].d[0]
293*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i32> %a to <8 x half>
294*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
295*9880d681SAndroid Build Coastguard Worker}
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Worker
298*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @sitofp_i64(<8 x i64> %a) #0 {
299*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i64:
300*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[OP1:v[0-9]+\.2d]], v0.2d
301*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[OP2:v[0-9]+\.2d]], v1.2d
302*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn [[OP3:v[0-9]+]].2s, [[OP1]]
303*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn2 [[OP3]].4s, [[OP2]]
304*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtn v0.4h, [[OP3]].4s
305*9880d681SAndroid Build Coastguard Worker  %1 = sitofp <8 x i64> %a to <8 x half>
306*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
307*9880d681SAndroid Build Coastguard Worker}
308*9880d681SAndroid Build Coastguard Worker
309*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @uitofp_i8(<8 x i8> %a) #0 {
310*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i8:
311*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ushll v[[REG1:[0-9]+]].8h, v0.8b, #0
312*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ushll2 [[LO:v[0-9]+\.4s]], v[[REG1]].8h, #0
313*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ushll  [[HI:v[0-9]+\.4s]], v[[REG1]].4h, #0
314*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[HIF:v[0-9]+\.4s]], [[HI]]
315*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[LOF:v[0-9]+\.4s]], [[LO]]
316*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]]
317*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v0.4h, [[HIF]]
318*9880d681SAndroid Build Coastguard Worker; CHECK: ins v0.d[1], v[[LOREG]].d[0]
319*9880d681SAndroid Build Coastguard Worker  %1 = uitofp <8 x i8> %a to <8 x half>
320*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
321*9880d681SAndroid Build Coastguard Worker}
322*9880d681SAndroid Build Coastguard Worker
323*9880d681SAndroid Build Coastguard Worker
324*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @uitofp_i16(<8 x i16> %a) #0 {
325*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i16:
326*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ushll2 [[LO:v[0-9]+\.4s]], v0.8h, #0
327*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ushll  [[HI:v[0-9]+\.4s]], v0.4h, #0
328*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[HIF:v[0-9]+\.4s]], [[HI]]
329*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[LOF:v[0-9]+\.4s]], [[LO]]
330*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]]
331*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v0.4h, [[HIF]]
332*9880d681SAndroid Build Coastguard Worker; CHECK: ins v0.d[1], v[[LOREG]].d[0]
333*9880d681SAndroid Build Coastguard Worker  %1 = uitofp <8 x i16> %a to <8 x half>
334*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
335*9880d681SAndroid Build Coastguard Worker}
336*9880d681SAndroid Build Coastguard Worker
337*9880d681SAndroid Build Coastguard Worker
338*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @uitofp_i32(<8 x i32> %a) #0 {
339*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i32:
340*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[OP1:v[0-9]+\.4s]], v0.4s
341*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[OP2:v[0-9]+\.4s]], v1.4s
342*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v[[REG:[0-9]+]].4h, [[OP2]]
343*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn v0.4h, [[OP1]]
344*9880d681SAndroid Build Coastguard Worker; CHECK: ins v0.d[1], v[[REG]].d[0]
345*9880d681SAndroid Build Coastguard Worker  %1 = uitofp <8 x i32> %a to <8 x half>
346*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
347*9880d681SAndroid Build Coastguard Worker}
348*9880d681SAndroid Build Coastguard Worker
349*9880d681SAndroid Build Coastguard Worker
350*9880d681SAndroid Build Coastguard Workerdefine <8 x half> @uitofp_i64(<8 x i64> %a) #0 {
351*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i64:
352*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[OP1:v[0-9]+\.2d]], v0.2d
353*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[OP2:v[0-9]+\.2d]], v1.2d
354*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn [[OP3:v[0-9]+]].2s, [[OP1]]
355*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn2 [[OP3]].4s, [[OP2]]
356*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtn v0.4h, [[OP3]].4s
357*9880d681SAndroid Build Coastguard Worker  %1 = uitofp <8 x i64> %a to <8 x half>
358*9880d681SAndroid Build Coastguard Worker  ret <8 x half> %1
359*9880d681SAndroid Build Coastguard Worker}
360*9880d681SAndroid Build Coastguard Worker
361*9880d681SAndroid Build Coastguard Workerdefine void @test_insert_at_zero(half %a, <8 x half>* %b) #0 {
362*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_insert_at_zero:
363*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: str q0, [x0]
364*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret
365*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <8 x half> undef, half %a, i64 0
366*9880d681SAndroid Build Coastguard Worker  store <8 x half> %1, <8 x half>* %b, align 4
367*9880d681SAndroid Build Coastguard Worker  ret void
368*9880d681SAndroid Build Coastguard Worker}
369*9880d681SAndroid Build Coastguard Worker
370*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @fptosi_i8(<8 x half> %a) #0 {
371*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptosi_i8:
372*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl   [[LO:v[0-9]+\.4s]], v0.4h
373*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl2  [[HI:v[0-9]+\.4s]], v0.8h
374*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzs  [[LOF32:v[0-9]+\.4s]], [[LO]]
375*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: xtn     [[I16:v[0-9]+]].4h, [[LOF32]]
376*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzs  [[HIF32:v[0-9]+\.4s]], [[HI]]
377*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: xtn2    [[I16]].8h, [[HIF32]]
378*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn     v0.8b, [[I16]].8h
379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret
380*9880d681SAndroid Build Coastguard Worker  %1 = fptosi<8 x half> %a to <8 x i8>
381*9880d681SAndroid Build Coastguard Worker  ret <8 x i8> %1
382*9880d681SAndroid Build Coastguard Worker}
383*9880d681SAndroid Build Coastguard Worker
384*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @fptosi_i16(<8 x half> %a) #0 {
385*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptosi_i16:
386*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl   [[LO:v[0-9]+\.4s]], v0.4h
387*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl2  [[HI:v[0-9]+\.4s]], v0.8h
388*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzs  [[LOF32:v[0-9]+\.4s]], [[LO]]
389*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: xtn     [[I16:v[0-9]+]].4h, [[LOF32]]
390*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzs  [[HIF32:v[0-9]+\.4s]], [[HI]]
391*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn2    [[I16]].8h, [[HIF32]]
392*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret
393*9880d681SAndroid Build Coastguard Worker  %1 = fptosi<8 x half> %a to <8 x i16>
394*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %1
395*9880d681SAndroid Build Coastguard Worker}
396*9880d681SAndroid Build Coastguard Worker
397*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @fptoui_i8(<8 x half> %a) #0 {
398*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptoui_i8:
399*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl   [[LO:v[0-9]+\.4s]], v0.4h
400*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl2  [[HI:v[0-9]+\.4s]], v0.8h
401*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzu  [[LOF32:v[0-9]+\.4s]], [[LO]]
402*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: xtn     [[I16:v[0-9]+]].4h, [[LOF32]]
403*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzu  [[HIF32:v[0-9]+\.4s]], [[HI]]
404*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: xtn2    [[I16]].8h, [[HIF32]]
405*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn     v0.8b, [[I16]].8h
406*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret
407*9880d681SAndroid Build Coastguard Worker  %1 = fptoui<8 x half> %a to <8 x i8>
408*9880d681SAndroid Build Coastguard Worker  ret <8 x i8> %1
409*9880d681SAndroid Build Coastguard Worker}
410*9880d681SAndroid Build Coastguard Worker
411*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @fptoui_i16(<8 x half> %a) #0 {
412*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptoui_i16:
413*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl   [[LO:v[0-9]+\.4s]], v0.4h
414*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl2  [[HI:v[0-9]+\.4s]], v0.8h
415*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzu  [[LOF32:v[0-9]+\.4s]], [[LO]]
416*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: xtn     [[I16:v[0-9]+]].4h, [[LOF32]]
417*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtzu  [[HIF32:v[0-9]+\.4s]], [[HI]]
418*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn2    [[I16]].8h, [[HIF32]]
419*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret
420*9880d681SAndroid Build Coastguard Worker  %1 = fptoui<8 x half> %a to <8 x i16>
421*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %1
422*9880d681SAndroid Build Coastguard Worker}
423*9880d681SAndroid Build Coastguard Worker
424*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
425*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_une(<8 x half> %a, <8 x half> %b) #0 {
426*9880d681SAndroid Build Coastguard Worker  %1 = fcmp une <8 x half> %a, %b
427*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
428*9880d681SAndroid Build Coastguard Worker}
429*9880d681SAndroid Build Coastguard Worker
430*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 16 csel tests.  Skipped.
431*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_ueq(<8 x half> %a, <8 x half> %b) #0 {
432*9880d681SAndroid Build Coastguard Worker  %1 = fcmp ueq <8 x half> %a, %b
433*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
434*9880d681SAndroid Build Coastguard Worker}
435*9880d681SAndroid Build Coastguard Worker
436*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
437*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_ugt(<8 x half> %a, <8 x half> %b) #0 {
438*9880d681SAndroid Build Coastguard Worker  %1 = fcmp ugt <8 x half> %a, %b
439*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
440*9880d681SAndroid Build Coastguard Worker}
441*9880d681SAndroid Build Coastguard Worker
442*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
443*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_uge(<8 x half> %a, <8 x half> %b) #0 {
444*9880d681SAndroid Build Coastguard Worker  %1 = fcmp uge <8 x half> %a, %b
445*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
446*9880d681SAndroid Build Coastguard Worker}
447*9880d681SAndroid Build Coastguard Worker
448*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
449*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_ult(<8 x half> %a, <8 x half> %b) #0 {
450*9880d681SAndroid Build Coastguard Worker  %1 = fcmp ult <8 x half> %a, %b
451*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
452*9880d681SAndroid Build Coastguard Worker}
453*9880d681SAndroid Build Coastguard Worker
454*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
455*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_ule(<8 x half> %a, <8 x half> %b) #0 {
456*9880d681SAndroid Build Coastguard Worker  %1 = fcmp ule <8 x half> %a, %b
457*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
458*9880d681SAndroid Build Coastguard Worker}
459*9880d681SAndroid Build Coastguard Worker
460*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
461*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_uno(<8 x half> %a, <8 x half> %b) #0 {
462*9880d681SAndroid Build Coastguard Worker  %1 = fcmp uno <8 x half> %a, %b
463*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
464*9880d681SAndroid Build Coastguard Worker}
465*9880d681SAndroid Build Coastguard Worker
466*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
467*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_one(<8 x half> %a, <8 x half> %b) #0 {
468*9880d681SAndroid Build Coastguard Worker  %1 = fcmp one <8 x half> %a, %b
469*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
470*9880d681SAndroid Build Coastguard Worker}
471*9880d681SAndroid Build Coastguard Worker
472*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
473*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_oeq(<8 x half> %a, <8 x half> %b) #0 {
474*9880d681SAndroid Build Coastguard Worker  %1 = fcmp oeq <8 x half> %a, %b
475*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
476*9880d681SAndroid Build Coastguard Worker}
477*9880d681SAndroid Build Coastguard Worker
478*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
479*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_ogt(<8 x half> %a, <8 x half> %b) #0 {
480*9880d681SAndroid Build Coastguard Worker  %1 = fcmp ogt <8 x half> %a, %b
481*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
482*9880d681SAndroid Build Coastguard Worker}
483*9880d681SAndroid Build Coastguard Worker
484*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
485*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_oge(<8 x half> %a, <8 x half> %b) #0 {
486*9880d681SAndroid Build Coastguard Worker  %1 = fcmp oge <8 x half> %a, %b
487*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
488*9880d681SAndroid Build Coastguard Worker}
489*9880d681SAndroid Build Coastguard Worker
490*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
491*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_olt(<8 x half> %a, <8 x half> %b) #0 {
492*9880d681SAndroid Build Coastguard Worker  %1 = fcmp olt <8 x half> %a, %b
493*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
494*9880d681SAndroid Build Coastguard Worker}
495*9880d681SAndroid Build Coastguard Worker
496*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
497*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_ole(<8 x half> %a, <8 x half> %b) #0 {
498*9880d681SAndroid Build Coastguard Worker  %1 = fcmp ole <8 x half> %a, %b
499*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
500*9880d681SAndroid Build Coastguard Worker}
501*9880d681SAndroid Build Coastguard Worker
502*9880d681SAndroid Build Coastguard Worker; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests.  Skipped.
503*9880d681SAndroid Build Coastguard Workerdefine <8 x i1> @test_fcmp_ord(<8 x half> %a, <8 x half> %b) #0 {
504*9880d681SAndroid Build Coastguard Worker  %1 = fcmp ord <8 x half> %a, %b
505*9880d681SAndroid Build Coastguard Worker  ret <8 x i1> %1
506*9880d681SAndroid Build Coastguard Worker}
507*9880d681SAndroid Build Coastguard Worker
508*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind }
509