xref: /aosp_15_r20/external/llvm/test/CodeGen/AArch64/round-conv.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=arm64 | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmsws:
4*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms w0, s0
5*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
6*9880d681SAndroid Build Coastguard Workerdefine i32 @testmsws(float %a) {
7*9880d681SAndroid Build Coastguard Workerentry:
8*9880d681SAndroid Build Coastguard Worker  %call = call float @floorf(float %a) nounwind readnone
9*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i32
10*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
11*9880d681SAndroid Build Coastguard Worker}
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmsxs:
14*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms x0, s0
15*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
16*9880d681SAndroid Build Coastguard Workerdefine i64 @testmsxs(float %a) {
17*9880d681SAndroid Build Coastguard Workerentry:
18*9880d681SAndroid Build Coastguard Worker  %call = call float @floorf(float %a) nounwind readnone
19*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i64
20*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
21*9880d681SAndroid Build Coastguard Worker}
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmswd:
24*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms w0, d0
25*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
26*9880d681SAndroid Build Coastguard Workerdefine i32 @testmswd(double %a) {
27*9880d681SAndroid Build Coastguard Workerentry:
28*9880d681SAndroid Build Coastguard Worker  %call = call double @floor(double %a) nounwind readnone
29*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i32
30*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
31*9880d681SAndroid Build Coastguard Worker}
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmsxd:
34*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms x0, d0
35*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
36*9880d681SAndroid Build Coastguard Workerdefine i64 @testmsxd(double %a) {
37*9880d681SAndroid Build Coastguard Workerentry:
38*9880d681SAndroid Build Coastguard Worker  %call = call double @floor(double %a) nounwind readnone
39*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i64
40*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
41*9880d681SAndroid Build Coastguard Worker}
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuws:
44*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu w0, s0
45*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
46*9880d681SAndroid Build Coastguard Workerdefine i32 @testmuws(float %a) {
47*9880d681SAndroid Build Coastguard Workerentry:
48*9880d681SAndroid Build Coastguard Worker  %call = call float @floorf(float %a) nounwind readnone
49*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i32
50*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
51*9880d681SAndroid Build Coastguard Worker}
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuxs:
54*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu x0, s0
55*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
56*9880d681SAndroid Build Coastguard Workerdefine i64 @testmuxs(float %a) {
57*9880d681SAndroid Build Coastguard Workerentry:
58*9880d681SAndroid Build Coastguard Worker  %call = call float @floorf(float %a) nounwind readnone
59*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i64
60*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
61*9880d681SAndroid Build Coastguard Worker}
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuwd:
64*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu w0, d0
65*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
66*9880d681SAndroid Build Coastguard Workerdefine i32 @testmuwd(double %a) {
67*9880d681SAndroid Build Coastguard Workerentry:
68*9880d681SAndroid Build Coastguard Worker  %call = call double @floor(double %a) nounwind readnone
69*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i32
70*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
71*9880d681SAndroid Build Coastguard Worker}
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuxd:
74*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu x0, d0
75*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
76*9880d681SAndroid Build Coastguard Workerdefine i64 @testmuxd(double %a) {
77*9880d681SAndroid Build Coastguard Workerentry:
78*9880d681SAndroid Build Coastguard Worker  %call = call double @floor(double %a) nounwind readnone
79*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i64
80*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
81*9880d681SAndroid Build Coastguard Worker}
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpsws:
84*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps w0, s0
85*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
86*9880d681SAndroid Build Coastguard Workerdefine i32 @testpsws(float %a) {
87*9880d681SAndroid Build Coastguard Workerentry:
88*9880d681SAndroid Build Coastguard Worker  %call = call float @ceilf(float %a) nounwind readnone
89*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i32
90*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
91*9880d681SAndroid Build Coastguard Worker}
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpsxs:
94*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps x0, s0
95*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
96*9880d681SAndroid Build Coastguard Workerdefine i64 @testpsxs(float %a) {
97*9880d681SAndroid Build Coastguard Workerentry:
98*9880d681SAndroid Build Coastguard Worker  %call = call float @ceilf(float %a) nounwind readnone
99*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i64
100*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
101*9880d681SAndroid Build Coastguard Worker}
102*9880d681SAndroid Build Coastguard Worker
103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpswd:
104*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps w0, d0
105*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
106*9880d681SAndroid Build Coastguard Workerdefine i32 @testpswd(double %a) {
107*9880d681SAndroid Build Coastguard Workerentry:
108*9880d681SAndroid Build Coastguard Worker  %call = call double @ceil(double %a) nounwind readnone
109*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i32
110*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
111*9880d681SAndroid Build Coastguard Worker}
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpsxd:
114*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps x0, d0
115*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
116*9880d681SAndroid Build Coastguard Workerdefine i64 @testpsxd(double %a) {
117*9880d681SAndroid Build Coastguard Workerentry:
118*9880d681SAndroid Build Coastguard Worker  %call = call double @ceil(double %a) nounwind readnone
119*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i64
120*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
121*9880d681SAndroid Build Coastguard Worker}
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuws:
124*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu w0, s0
125*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
126*9880d681SAndroid Build Coastguard Workerdefine i32 @testpuws(float %a) {
127*9880d681SAndroid Build Coastguard Workerentry:
128*9880d681SAndroid Build Coastguard Worker  %call = call float @ceilf(float %a) nounwind readnone
129*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i32
130*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
131*9880d681SAndroid Build Coastguard Worker}
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuxs:
134*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu x0, s0
135*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
136*9880d681SAndroid Build Coastguard Workerdefine i64 @testpuxs(float %a) {
137*9880d681SAndroid Build Coastguard Workerentry:
138*9880d681SAndroid Build Coastguard Worker  %call = call float @ceilf(float %a) nounwind readnone
139*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i64
140*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
141*9880d681SAndroid Build Coastguard Worker}
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuwd:
144*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu w0, d0
145*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
146*9880d681SAndroid Build Coastguard Workerdefine i32 @testpuwd(double %a) {
147*9880d681SAndroid Build Coastguard Workerentry:
148*9880d681SAndroid Build Coastguard Worker  %call = call double @ceil(double %a) nounwind readnone
149*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i32
150*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
151*9880d681SAndroid Build Coastguard Worker}
152*9880d681SAndroid Build Coastguard Worker
153*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuxd:
154*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu x0, d0
155*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
156*9880d681SAndroid Build Coastguard Workerdefine i64 @testpuxd(double %a) {
157*9880d681SAndroid Build Coastguard Workerentry:
158*9880d681SAndroid Build Coastguard Worker  %call = call double @ceil(double %a) nounwind readnone
159*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i64
160*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
161*9880d681SAndroid Build Coastguard Worker}
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzsws:
164*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs w0, s0
165*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
166*9880d681SAndroid Build Coastguard Workerdefine i32 @testzsws(float %a) {
167*9880d681SAndroid Build Coastguard Workerentry:
168*9880d681SAndroid Build Coastguard Worker  %call = call float @truncf(float %a) nounwind readnone
169*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i32
170*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
171*9880d681SAndroid Build Coastguard Worker}
172*9880d681SAndroid Build Coastguard Worker
173*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzsxs:
174*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs x0, s0
175*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
176*9880d681SAndroid Build Coastguard Workerdefine i64 @testzsxs(float %a) {
177*9880d681SAndroid Build Coastguard Workerentry:
178*9880d681SAndroid Build Coastguard Worker  %call = call float @truncf(float %a) nounwind readnone
179*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i64
180*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
181*9880d681SAndroid Build Coastguard Worker}
182*9880d681SAndroid Build Coastguard Worker
183*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzswd:
184*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs w0, d0
185*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
186*9880d681SAndroid Build Coastguard Workerdefine i32 @testzswd(double %a) {
187*9880d681SAndroid Build Coastguard Workerentry:
188*9880d681SAndroid Build Coastguard Worker  %call = call double @trunc(double %a) nounwind readnone
189*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i32
190*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
191*9880d681SAndroid Build Coastguard Worker}
192*9880d681SAndroid Build Coastguard Worker
193*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzsxd:
194*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs x0, d0
195*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
196*9880d681SAndroid Build Coastguard Workerdefine i64 @testzsxd(double %a) {
197*9880d681SAndroid Build Coastguard Workerentry:
198*9880d681SAndroid Build Coastguard Worker  %call = call double @trunc(double %a) nounwind readnone
199*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i64
200*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
201*9880d681SAndroid Build Coastguard Worker}
202*9880d681SAndroid Build Coastguard Worker
203*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuws:
204*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu w0, s0
205*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
206*9880d681SAndroid Build Coastguard Workerdefine i32 @testzuws(float %a) {
207*9880d681SAndroid Build Coastguard Workerentry:
208*9880d681SAndroid Build Coastguard Worker  %call = call float @truncf(float %a) nounwind readnone
209*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i32
210*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
211*9880d681SAndroid Build Coastguard Worker}
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuxs:
214*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu x0, s0
215*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
216*9880d681SAndroid Build Coastguard Workerdefine i64 @testzuxs(float %a) {
217*9880d681SAndroid Build Coastguard Workerentry:
218*9880d681SAndroid Build Coastguard Worker  %call = call float @truncf(float %a) nounwind readnone
219*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i64
220*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
221*9880d681SAndroid Build Coastguard Worker}
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuwd:
224*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu w0, d0
225*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
226*9880d681SAndroid Build Coastguard Workerdefine i32 @testzuwd(double %a) {
227*9880d681SAndroid Build Coastguard Workerentry:
228*9880d681SAndroid Build Coastguard Worker  %call = call double @trunc(double %a) nounwind readnone
229*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i32
230*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
231*9880d681SAndroid Build Coastguard Worker}
232*9880d681SAndroid Build Coastguard Worker
233*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuxd:
234*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu x0, d0
235*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
236*9880d681SAndroid Build Coastguard Workerdefine i64 @testzuxd(double %a) {
237*9880d681SAndroid Build Coastguard Workerentry:
238*9880d681SAndroid Build Coastguard Worker  %call = call double @trunc(double %a) nounwind readnone
239*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i64
240*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
241*9880d681SAndroid Build Coastguard Worker}
242*9880d681SAndroid Build Coastguard Worker
243*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testasws:
244*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas w0, s0
245*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
246*9880d681SAndroid Build Coastguard Workerdefine i32 @testasws(float %a) {
247*9880d681SAndroid Build Coastguard Workerentry:
248*9880d681SAndroid Build Coastguard Worker  %call = call float @roundf(float %a) nounwind readnone
249*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i32
250*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
251*9880d681SAndroid Build Coastguard Worker}
252*9880d681SAndroid Build Coastguard Worker
253*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testasxs:
254*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas x0, s0
255*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
256*9880d681SAndroid Build Coastguard Workerdefine i64 @testasxs(float %a) {
257*9880d681SAndroid Build Coastguard Workerentry:
258*9880d681SAndroid Build Coastguard Worker  %call = call float @roundf(float %a) nounwind readnone
259*9880d681SAndroid Build Coastguard Worker  %conv = fptosi float %call to i64
260*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
261*9880d681SAndroid Build Coastguard Worker}
262*9880d681SAndroid Build Coastguard Worker
263*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testaswd:
264*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas w0, d0
265*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
266*9880d681SAndroid Build Coastguard Workerdefine i32 @testaswd(double %a) {
267*9880d681SAndroid Build Coastguard Workerentry:
268*9880d681SAndroid Build Coastguard Worker  %call = call double @round(double %a) nounwind readnone
269*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i32
270*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
271*9880d681SAndroid Build Coastguard Worker}
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testasxd:
274*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas x0, d0
275*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
276*9880d681SAndroid Build Coastguard Workerdefine i64 @testasxd(double %a) {
277*9880d681SAndroid Build Coastguard Workerentry:
278*9880d681SAndroid Build Coastguard Worker  %call = call double @round(double %a) nounwind readnone
279*9880d681SAndroid Build Coastguard Worker  %conv = fptosi double %call to i64
280*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
281*9880d681SAndroid Build Coastguard Worker}
282*9880d681SAndroid Build Coastguard Worker
283*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauws:
284*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau w0, s0
285*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
286*9880d681SAndroid Build Coastguard Workerdefine i32 @testauws(float %a) {
287*9880d681SAndroid Build Coastguard Workerentry:
288*9880d681SAndroid Build Coastguard Worker  %call = call float @roundf(float %a) nounwind readnone
289*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i32
290*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
291*9880d681SAndroid Build Coastguard Worker}
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauxs:
294*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau x0, s0
295*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0
296*9880d681SAndroid Build Coastguard Workerdefine i64 @testauxs(float %a) {
297*9880d681SAndroid Build Coastguard Workerentry:
298*9880d681SAndroid Build Coastguard Worker  %call = call float @roundf(float %a) nounwind readnone
299*9880d681SAndroid Build Coastguard Worker  %conv = fptoui float %call to i64
300*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
301*9880d681SAndroid Build Coastguard Worker}
302*9880d681SAndroid Build Coastguard Worker
303*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauwd:
304*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau w0, d0
305*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
306*9880d681SAndroid Build Coastguard Workerdefine i32 @testauwd(double %a) {
307*9880d681SAndroid Build Coastguard Workerentry:
308*9880d681SAndroid Build Coastguard Worker  %call = call double @round(double %a) nounwind readnone
309*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i32
310*9880d681SAndroid Build Coastguard Worker  ret i32 %conv
311*9880d681SAndroid Build Coastguard Worker}
312*9880d681SAndroid Build Coastguard Worker
313*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauxd:
314*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau x0, d0
315*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0
316*9880d681SAndroid Build Coastguard Workerdefine i64 @testauxd(double %a) {
317*9880d681SAndroid Build Coastguard Workerentry:
318*9880d681SAndroid Build Coastguard Worker  %call = call double @round(double %a) nounwind readnone
319*9880d681SAndroid Build Coastguard Worker  %conv = fptoui double %call to i64
320*9880d681SAndroid Build Coastguard Worker  ret i64 %conv
321*9880d681SAndroid Build Coastguard Worker}
322*9880d681SAndroid Build Coastguard Worker
323*9880d681SAndroid Build Coastguard Workerdeclare float @floorf(float) nounwind readnone
324*9880d681SAndroid Build Coastguard Workerdeclare double @floor(double) nounwind readnone
325*9880d681SAndroid Build Coastguard Workerdeclare float @ceilf(float) nounwind readnone
326*9880d681SAndroid Build Coastguard Workerdeclare double @ceil(double) nounwind readnone
327*9880d681SAndroid Build Coastguard Workerdeclare float @truncf(float) nounwind readnone
328*9880d681SAndroid Build Coastguard Workerdeclare double @trunc(double) nounwind readnone
329*9880d681SAndroid Build Coastguard Workerdeclare float @roundf(float) nounwind readnone
330*9880d681SAndroid Build Coastguard Workerdeclare double @round(double) nounwind readnone
331