Lines Matching refs:SOFT

2 ; RUN: llc -mtriple=thumbv6m-none-eabi -float-abi=soft %s -o - | FileCheck %s --check-prefixes=SOFT
9 ; SOFT-LABEL: stest_f64i32:
10 ; SOFT: @ %bb.0: @ %entry
11 ; SOFT-NEXT: .save {r4, r5, r7, lr}
12 ; SOFT-NEXT: push {r4, r5, r7, lr}
13 ; SOFT-NEXT: bl __aeabi_d2lz
14 ; SOFT-NEXT: movs r2, #1
15 ; SOFT-NEXT: movs r3, #0
16 ; SOFT-NEXT: ldr r4, .LCPI0_0
17 ; SOFT-NEXT: subs r5, r0, r4
18 ; SOFT-NEXT: mov r5, r1
19 ; SOFT-NEXT: sbcs r5, r3
20 ; SOFT-NEXT: mov r5, r2
21 ; SOFT-NEXT: bge .LBB0_7
22 ; SOFT-NEXT: @ %bb.1: @ %entry
23 ; SOFT-NEXT: cmp r5, #0
24 ; SOFT-NEXT: beq .LBB0_8
25 ; SOFT-NEXT: .LBB0_2: @ %entry
26 ; SOFT-NEXT: cmp r5, #0
27 ; SOFT-NEXT: bne .LBB0_4
28 ; SOFT-NEXT: .LBB0_3: @ %entry
29 ; SOFT-NEXT: mov r0, r4
30 ; SOFT-NEXT: .LBB0_4: @ %entry
31 ; SOFT-NEXT: mvns r3, r3
32 ; SOFT-NEXT: lsls r2, r2, #31
33 ; SOFT-NEXT: subs r4, r2, r0
34 ; SOFT-NEXT: sbcs r3, r1
35 ; SOFT-NEXT: blt .LBB0_6
36 ; SOFT-NEXT: @ %bb.5: @ %entry
37 ; SOFT-NEXT: mov r0, r2
38 ; SOFT-NEXT: .LBB0_6: @ %entry
39 ; SOFT-NEXT: pop {r4, r5, r7, pc}
40 ; SOFT-NEXT: .LBB0_7: @ %entry
41 ; SOFT-NEXT: mov r5, r3
42 ; SOFT-NEXT: cmp r5, #0
43 ; SOFT-NEXT: bne .LBB0_2
44 ; SOFT-NEXT: .LBB0_8: @ %entry
45 ; SOFT-NEXT: mov r1, r3
46 ; SOFT-NEXT: cmp r5, #0
47 ; SOFT-NEXT: beq .LBB0_3
48 ; SOFT-NEXT: b .LBB0_4
49 ; SOFT-NEXT: .p2align 2
50 ; SOFT-NEXT: @ %bb.9:
51 ; SOFT-NEXT: .LCPI0_0:
52 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
93 ; SOFT-LABEL: utest_f64i32:
94 ; SOFT: @ %bb.0: @ %entry
95 ; SOFT-NEXT: .save {r7, lr}
96 ; SOFT-NEXT: push {r7, lr}
97 ; SOFT-NEXT: bl __aeabi_d2ulz
98 ; SOFT-NEXT: movs r2, #0
99 ; SOFT-NEXT: adds r3, r0, #1
100 ; SOFT-NEXT: sbcs r1, r2
101 ; SOFT-NEXT: blo .LBB1_2
102 ; SOFT-NEXT: @ %bb.1: @ %entry
103 ; SOFT-NEXT: mvns r0, r2
104 ; SOFT-NEXT: .LBB1_2: @ %entry
105 ; SOFT-NEXT: pop {r7, pc}
133 ; SOFT-LABEL: ustest_f64i32:
134 ; SOFT: @ %bb.0: @ %entry
135 ; SOFT-NEXT: .save {r4, lr}
136 ; SOFT-NEXT: push {r4, lr}
137 ; SOFT-NEXT: bl __aeabi_d2lz
138 ; SOFT-NEXT: movs r2, #1
139 ; SOFT-NEXT: movs r3, #0
140 ; SOFT-NEXT: adds r4, r0, #1
141 ; SOFT-NEXT: mov r4, r1
142 ; SOFT-NEXT: sbcs r4, r3
143 ; SOFT-NEXT: mov r4, r2
144 ; SOFT-NEXT: bge .LBB2_7
145 ; SOFT-NEXT: @ %bb.1: @ %entry
146 ; SOFT-NEXT: cmp r4, #0
147 ; SOFT-NEXT: beq .LBB2_8
148 ; SOFT-NEXT: .LBB2_2: @ %entry
149 ; SOFT-NEXT: cmp r4, #0
150 ; SOFT-NEXT: bne .LBB2_4
151 ; SOFT-NEXT: .LBB2_3: @ %entry
152 ; SOFT-NEXT: mvns r0, r3
153 ; SOFT-NEXT: .LBB2_4: @ %entry
154 ; SOFT-NEXT: rsbs r4, r0, #0
155 ; SOFT-NEXT: mov r4, r3
156 ; SOFT-NEXT: sbcs r4, r1
157 ; SOFT-NEXT: bge .LBB2_9
158 ; SOFT-NEXT: @ %bb.5: @ %entry
159 ; SOFT-NEXT: cmp r2, #0
160 ; SOFT-NEXT: beq .LBB2_10
161 ; SOFT-NEXT: .LBB2_6: @ %entry
162 ; SOFT-NEXT: pop {r4, pc}
163 ; SOFT-NEXT: .LBB2_7: @ %entry
164 ; SOFT-NEXT: mov r4, r3
165 ; SOFT-NEXT: cmp r4, #0
166 ; SOFT-NEXT: bne .LBB2_2
167 ; SOFT-NEXT: .LBB2_8: @ %entry
168 ; SOFT-NEXT: mov r1, r3
169 ; SOFT-NEXT: cmp r4, #0
170 ; SOFT-NEXT: beq .LBB2_3
171 ; SOFT-NEXT: b .LBB2_4
172 ; SOFT-NEXT: .LBB2_9: @ %entry
173 ; SOFT-NEXT: mov r2, r3
174 ; SOFT-NEXT: cmp r2, #0
175 ; SOFT-NEXT: bne .LBB2_6
176 ; SOFT-NEXT: .LBB2_10: @ %entry
177 ; SOFT-NEXT: mov r0, r2
178 ; SOFT-NEXT: pop {r4, pc}
221 ; SOFT-LABEL: stest_f32i32:
222 ; SOFT: @ %bb.0: @ %entry
223 ; SOFT-NEXT: .save {r4, r5, r7, lr}
224 ; SOFT-NEXT: push {r4, r5, r7, lr}
225 ; SOFT-NEXT: bl __aeabi_f2lz
226 ; SOFT-NEXT: movs r2, #1
227 ; SOFT-NEXT: movs r3, #0
228 ; SOFT-NEXT: ldr r4, .LCPI3_0
229 ; SOFT-NEXT: subs r5, r0, r4
230 ; SOFT-NEXT: mov r5, r1
231 ; SOFT-NEXT: sbcs r5, r3
232 ; SOFT-NEXT: mov r5, r2
233 ; SOFT-NEXT: bge .LBB3_7
234 ; SOFT-NEXT: @ %bb.1: @ %entry
235 ; SOFT-NEXT: cmp r5, #0
236 ; SOFT-NEXT: beq .LBB3_8
237 ; SOFT-NEXT: .LBB3_2: @ %entry
238 ; SOFT-NEXT: cmp r5, #0
239 ; SOFT-NEXT: bne .LBB3_4
240 ; SOFT-NEXT: .LBB3_3: @ %entry
241 ; SOFT-NEXT: mov r0, r4
242 ; SOFT-NEXT: .LBB3_4: @ %entry
243 ; SOFT-NEXT: mvns r3, r3
244 ; SOFT-NEXT: lsls r2, r2, #31
245 ; SOFT-NEXT: subs r4, r2, r0
246 ; SOFT-NEXT: sbcs r3, r1
247 ; SOFT-NEXT: blt .LBB3_6
248 ; SOFT-NEXT: @ %bb.5: @ %entry
249 ; SOFT-NEXT: mov r0, r2
250 ; SOFT-NEXT: .LBB3_6: @ %entry
251 ; SOFT-NEXT: pop {r4, r5, r7, pc}
252 ; SOFT-NEXT: .LBB3_7: @ %entry
253 ; SOFT-NEXT: mov r5, r3
254 ; SOFT-NEXT: cmp r5, #0
255 ; SOFT-NEXT: bne .LBB3_2
256 ; SOFT-NEXT: .LBB3_8: @ %entry
257 ; SOFT-NEXT: mov r1, r3
258 ; SOFT-NEXT: cmp r5, #0
259 ; SOFT-NEXT: beq .LBB3_3
260 ; SOFT-NEXT: b .LBB3_4
261 ; SOFT-NEXT: .p2align 2
262 ; SOFT-NEXT: @ %bb.9:
263 ; SOFT-NEXT: .LCPI3_0:
264 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
282 ; SOFT-LABEL: utest_f32i32:
283 ; SOFT: @ %bb.0: @ %entry
284 ; SOFT-NEXT: .save {r7, lr}
285 ; SOFT-NEXT: push {r7, lr}
286 ; SOFT-NEXT: bl __aeabi_f2ulz
287 ; SOFT-NEXT: movs r2, #0
288 ; SOFT-NEXT: adds r3, r0, #1
289 ; SOFT-NEXT: sbcs r1, r2
290 ; SOFT-NEXT: blo .LBB4_2
291 ; SOFT-NEXT: @ %bb.1: @ %entry
292 ; SOFT-NEXT: mvns r0, r2
293 ; SOFT-NEXT: .LBB4_2: @ %entry
294 ; SOFT-NEXT: pop {r7, pc}
310 ; SOFT-LABEL: ustest_f32i32:
311 ; SOFT: @ %bb.0: @ %entry
312 ; SOFT-NEXT: .save {r4, lr}
313 ; SOFT-NEXT: push {r4, lr}
314 ; SOFT-NEXT: bl __aeabi_f2lz
315 ; SOFT-NEXT: movs r2, #1
316 ; SOFT-NEXT: movs r3, #0
317 ; SOFT-NEXT: adds r4, r0, #1
318 ; SOFT-NEXT: mov r4, r1
319 ; SOFT-NEXT: sbcs r4, r3
320 ; SOFT-NEXT: mov r4, r2
321 ; SOFT-NEXT: bge .LBB5_7
322 ; SOFT-NEXT: @ %bb.1: @ %entry
323 ; SOFT-NEXT: cmp r4, #0
324 ; SOFT-NEXT: beq .LBB5_8
325 ; SOFT-NEXT: .LBB5_2: @ %entry
326 ; SOFT-NEXT: cmp r4, #0
327 ; SOFT-NEXT: bne .LBB5_4
328 ; SOFT-NEXT: .LBB5_3: @ %entry
329 ; SOFT-NEXT: mvns r0, r3
330 ; SOFT-NEXT: .LBB5_4: @ %entry
331 ; SOFT-NEXT: rsbs r4, r0, #0
332 ; SOFT-NEXT: mov r4, r3
333 ; SOFT-NEXT: sbcs r4, r1
334 ; SOFT-NEXT: bge .LBB5_9
335 ; SOFT-NEXT: @ %bb.5: @ %entry
336 ; SOFT-NEXT: cmp r2, #0
337 ; SOFT-NEXT: beq .LBB5_10
338 ; SOFT-NEXT: .LBB5_6: @ %entry
339 ; SOFT-NEXT: pop {r4, pc}
340 ; SOFT-NEXT: .LBB5_7: @ %entry
341 ; SOFT-NEXT: mov r4, r3
342 ; SOFT-NEXT: cmp r4, #0
343 ; SOFT-NEXT: bne .LBB5_2
344 ; SOFT-NEXT: .LBB5_8: @ %entry
345 ; SOFT-NEXT: mov r1, r3
346 ; SOFT-NEXT: cmp r4, #0
347 ; SOFT-NEXT: beq .LBB5_3
348 ; SOFT-NEXT: b .LBB5_4
349 ; SOFT-NEXT: .LBB5_9: @ %entry
350 ; SOFT-NEXT: mov r2, r3
351 ; SOFT-NEXT: cmp r2, #0
352 ; SOFT-NEXT: bne .LBB5_6
353 ; SOFT-NEXT: .LBB5_10: @ %entry
354 ; SOFT-NEXT: mov r0, r2
355 ; SOFT-NEXT: pop {r4, pc}
373 ; SOFT-LABEL: stest_f16i32:
374 ; SOFT: @ %bb.0: @ %entry
375 ; SOFT-NEXT: .save {r4, r5, r7, lr}
376 ; SOFT-NEXT: push {r4, r5, r7, lr}
377 ; SOFT-NEXT: uxth r0, r0
378 ; SOFT-NEXT: bl __aeabi_h2f
379 ; SOFT-NEXT: bl __aeabi_f2lz
380 ; SOFT-NEXT: movs r2, #1
381 ; SOFT-NEXT: movs r3, #0
382 ; SOFT-NEXT: ldr r4, .LCPI6_0
383 ; SOFT-NEXT: subs r5, r0, r4
384 ; SOFT-NEXT: mov r5, r1
385 ; SOFT-NEXT: sbcs r5, r3
386 ; SOFT-NEXT: mov r5, r2
387 ; SOFT-NEXT: bge .LBB6_7
388 ; SOFT-NEXT: @ %bb.1: @ %entry
389 ; SOFT-NEXT: cmp r5, #0
390 ; SOFT-NEXT: beq .LBB6_8
391 ; SOFT-NEXT: .LBB6_2: @ %entry
392 ; SOFT-NEXT: cmp r5, #0
393 ; SOFT-NEXT: bne .LBB6_4
394 ; SOFT-NEXT: .LBB6_3: @ %entry
395 ; SOFT-NEXT: mov r0, r4
396 ; SOFT-NEXT: .LBB6_4: @ %entry
397 ; SOFT-NEXT: mvns r3, r3
398 ; SOFT-NEXT: lsls r2, r2, #31
399 ; SOFT-NEXT: subs r4, r2, r0
400 ; SOFT-NEXT: sbcs r3, r1
401 ; SOFT-NEXT: blt .LBB6_6
402 ; SOFT-NEXT: @ %bb.5: @ %entry
403 ; SOFT-NEXT: mov r0, r2
404 ; SOFT-NEXT: .LBB6_6: @ %entry
405 ; SOFT-NEXT: pop {r4, r5, r7, pc}
406 ; SOFT-NEXT: .LBB6_7: @ %entry
407 ; SOFT-NEXT: mov r5, r3
408 ; SOFT-NEXT: cmp r5, #0
409 ; SOFT-NEXT: bne .LBB6_2
410 ; SOFT-NEXT: .LBB6_8: @ %entry
411 ; SOFT-NEXT: mov r1, r3
412 ; SOFT-NEXT: cmp r5, #0
413 ; SOFT-NEXT: beq .LBB6_3
414 ; SOFT-NEXT: b .LBB6_4
415 ; SOFT-NEXT: .p2align 2
416 ; SOFT-NEXT: @ %bb.9:
417 ; SOFT-NEXT: .LCPI6_0:
418 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
447 ; SOFT-LABEL: utesth_f16i32:
448 ; SOFT: @ %bb.0: @ %entry
449 ; SOFT-NEXT: .save {r7, lr}
450 ; SOFT-NEXT: push {r7, lr}
451 ; SOFT-NEXT: uxth r0, r0
452 ; SOFT-NEXT: bl __aeabi_h2f
453 ; SOFT-NEXT: bl __aeabi_f2ulz
454 ; SOFT-NEXT: movs r2, #0
455 ; SOFT-NEXT: adds r3, r0, #1
456 ; SOFT-NEXT: sbcs r1, r2
457 ; SOFT-NEXT: blo .LBB7_2
458 ; SOFT-NEXT: @ %bb.1: @ %entry
459 ; SOFT-NEXT: mvns r0, r2
460 ; SOFT-NEXT: .LBB7_2: @ %entry
461 ; SOFT-NEXT: pop {r7, pc}
488 ; SOFT-LABEL: ustest_f16i32:
489 ; SOFT: @ %bb.0: @ %entry
490 ; SOFT-NEXT: .save {r4, lr}
491 ; SOFT-NEXT: push {r4, lr}
492 ; SOFT-NEXT: uxth r0, r0
493 ; SOFT-NEXT: bl __aeabi_h2f
494 ; SOFT-NEXT: bl __aeabi_f2lz
495 ; SOFT-NEXT: movs r2, #1
496 ; SOFT-NEXT: movs r3, #0
497 ; SOFT-NEXT: adds r4, r0, #1
498 ; SOFT-NEXT: mov r4, r1
499 ; SOFT-NEXT: sbcs r4, r3
500 ; SOFT-NEXT: mov r4, r2
501 ; SOFT-NEXT: bge .LBB8_7
502 ; SOFT-NEXT: @ %bb.1: @ %entry
503 ; SOFT-NEXT: cmp r4, #0
504 ; SOFT-NEXT: beq .LBB8_8
505 ; SOFT-NEXT: .LBB8_2: @ %entry
506 ; SOFT-NEXT: cmp r4, #0
507 ; SOFT-NEXT: bne .LBB8_4
508 ; SOFT-NEXT: .LBB8_3: @ %entry
509 ; SOFT-NEXT: mvns r0, r3
510 ; SOFT-NEXT: .LBB8_4: @ %entry
511 ; SOFT-NEXT: rsbs r4, r0, #0
512 ; SOFT-NEXT: mov r4, r3
513 ; SOFT-NEXT: sbcs r4, r1
514 ; SOFT-NEXT: bge .LBB8_9
515 ; SOFT-NEXT: @ %bb.5: @ %entry
516 ; SOFT-NEXT: cmp r2, #0
517 ; SOFT-NEXT: beq .LBB8_10
518 ; SOFT-NEXT: .LBB8_6: @ %entry
519 ; SOFT-NEXT: pop {r4, pc}
520 ; SOFT-NEXT: .LBB8_7: @ %entry
521 ; SOFT-NEXT: mov r4, r3
522 ; SOFT-NEXT: cmp r4, #0
523 ; SOFT-NEXT: bne .LBB8_2
524 ; SOFT-NEXT: .LBB8_8: @ %entry
525 ; SOFT-NEXT: mov r1, r3
526 ; SOFT-NEXT: cmp r4, #0
527 ; SOFT-NEXT: beq .LBB8_3
528 ; SOFT-NEXT: b .LBB8_4
529 ; SOFT-NEXT: .LBB8_9: @ %entry
530 ; SOFT-NEXT: mov r2, r3
531 ; SOFT-NEXT: cmp r2, #0
532 ; SOFT-NEXT: bne .LBB8_6
533 ; SOFT-NEXT: .LBB8_10: @ %entry
534 ; SOFT-NEXT: mov r0, r2
535 ; SOFT-NEXT: pop {r4, pc}
566 ; SOFT-LABEL: stest_f64i16:
567 ; SOFT: @ %bb.0: @ %entry
568 ; SOFT-NEXT: .save {r7, lr}
569 ; SOFT-NEXT: push {r7, lr}
570 ; SOFT-NEXT: bl __aeabi_d2iz
571 ; SOFT-NEXT: ldr r1, .LCPI9_0
572 ; SOFT-NEXT: cmp r0, r1
573 ; SOFT-NEXT: blt .LBB9_2
574 ; SOFT-NEXT: @ %bb.1: @ %entry
575 ; SOFT-NEXT: mov r0, r1
576 ; SOFT-NEXT: .LBB9_2: @ %entry
577 ; SOFT-NEXT: ldr r1, .LCPI9_1
578 ; SOFT-NEXT: cmp r0, r1
579 ; SOFT-NEXT: bgt .LBB9_4
580 ; SOFT-NEXT: @ %bb.3: @ %entry
581 ; SOFT-NEXT: mov r0, r1
582 ; SOFT-NEXT: .LBB9_4: @ %entry
583 ; SOFT-NEXT: pop {r7, pc}
584 ; SOFT-NEXT: .p2align 2
585 ; SOFT-NEXT: @ %bb.5:
586 ; SOFT-NEXT: .LCPI9_0:
587 ; SOFT-NEXT: .long 32767 @ 0x7fff
588 ; SOFT-NEXT: .LCPI9_1:
589 ; SOFT-NEXT: .long 4294934528 @ 0xffff8000
617 ; SOFT-LABEL: utest_f64i16:
618 ; SOFT: @ %bb.0: @ %entry
619 ; SOFT-NEXT: .save {r7, lr}
620 ; SOFT-NEXT: push {r7, lr}
621 ; SOFT-NEXT: bl __aeabi_d2uiz
622 ; SOFT-NEXT: ldr r1, .LCPI10_0
623 ; SOFT-NEXT: cmp r0, r1
624 ; SOFT-NEXT: blo .LBB10_2
625 ; SOFT-NEXT: @ %bb.1: @ %entry
626 ; SOFT-NEXT: mov r0, r1
627 ; SOFT-NEXT: .LBB10_2: @ %entry
628 ; SOFT-NEXT: pop {r7, pc}
629 ; SOFT-NEXT: .p2align 2
630 ; SOFT-NEXT: @ %bb.3:
631 ; SOFT-NEXT: .LCPI10_0:
632 ; SOFT-NEXT: .long 65535 @ 0xffff
663 ; SOFT-LABEL: ustest_f64i16:
664 ; SOFT: @ %bb.0: @ %entry
665 ; SOFT-NEXT: .save {r7, lr}
666 ; SOFT-NEXT: push {r7, lr}
667 ; SOFT-NEXT: bl __aeabi_d2iz
668 ; SOFT-NEXT: ldr r1, .LCPI11_0
669 ; SOFT-NEXT: cmp r0, r1
670 ; SOFT-NEXT: blt .LBB11_2
671 ; SOFT-NEXT: @ %bb.1: @ %entry
672 ; SOFT-NEXT: mov r0, r1
673 ; SOFT-NEXT: .LBB11_2: @ %entry
674 ; SOFT-NEXT: asrs r1, r0, #31
675 ; SOFT-NEXT: bics r0, r1
676 ; SOFT-NEXT: pop {r7, pc}
677 ; SOFT-NEXT: .p2align 2
678 ; SOFT-NEXT: @ %bb.3:
679 ; SOFT-NEXT: .LCPI11_0:
680 ; SOFT-NEXT: .long 65535 @ 0xffff
708 ; SOFT-LABEL: stest_f32i16:
709 ; SOFT: @ %bb.0: @ %entry
710 ; SOFT-NEXT: .save {r7, lr}
711 ; SOFT-NEXT: push {r7, lr}
712 ; SOFT-NEXT: bl __aeabi_f2iz
713 ; SOFT-NEXT: ldr r1, .LCPI12_0
714 ; SOFT-NEXT: cmp r0, r1
715 ; SOFT-NEXT: blt .LBB12_2
716 ; SOFT-NEXT: @ %bb.1: @ %entry
717 ; SOFT-NEXT: mov r0, r1
718 ; SOFT-NEXT: .LBB12_2: @ %entry
719 ; SOFT-NEXT: ldr r1, .LCPI12_1
720 ; SOFT-NEXT: cmp r0, r1
721 ; SOFT-NEXT: bgt .LBB12_4
722 ; SOFT-NEXT: @ %bb.3: @ %entry
723 ; SOFT-NEXT: mov r0, r1
724 ; SOFT-NEXT: .LBB12_4: @ %entry
725 ; SOFT-NEXT: pop {r7, pc}
726 ; SOFT-NEXT: .p2align 2
727 ; SOFT-NEXT: @ %bb.5:
728 ; SOFT-NEXT: .LCPI12_0:
729 ; SOFT-NEXT: .long 32767 @ 0x7fff
730 ; SOFT-NEXT: .LCPI12_1:
731 ; SOFT-NEXT: .long 4294934528 @ 0xffff8000
750 ; SOFT-LABEL: utest_f32i16:
751 ; SOFT: @ %bb.0: @ %entry
752 ; SOFT-NEXT: .save {r7, lr}
753 ; SOFT-NEXT: push {r7, lr}
754 ; SOFT-NEXT: bl __aeabi_f2uiz
755 ; SOFT-NEXT: ldr r1, .LCPI13_0
756 ; SOFT-NEXT: cmp r0, r1
757 ; SOFT-NEXT: blo .LBB13_2
758 ; SOFT-NEXT: @ %bb.1: @ %entry
759 ; SOFT-NEXT: mov r0, r1
760 ; SOFT-NEXT: .LBB13_2: @ %entry
761 ; SOFT-NEXT: pop {r7, pc}
762 ; SOFT-NEXT: .p2align 2
763 ; SOFT-NEXT: @ %bb.3:
764 ; SOFT-NEXT: .LCPI13_0:
765 ; SOFT-NEXT: .long 65535 @ 0xffff
794 ; SOFT-LABEL: ustest_f32i16:
795 ; SOFT: @ %bb.0: @ %entry
796 ; SOFT-NEXT: .save {r7, lr}
797 ; SOFT-NEXT: push {r7, lr}
798 ; SOFT-NEXT: bl __aeabi_f2iz
799 ; SOFT-NEXT: ldr r1, .LCPI14_0
800 ; SOFT-NEXT: cmp r0, r1
801 ; SOFT-NEXT: blt .LBB14_2
802 ; SOFT-NEXT: @ %bb.1: @ %entry
803 ; SOFT-NEXT: mov r0, r1
804 ; SOFT-NEXT: .LBB14_2: @ %entry
805 ; SOFT-NEXT: asrs r1, r0, #31
806 ; SOFT-NEXT: bics r0, r1
807 ; SOFT-NEXT: pop {r7, pc}
808 ; SOFT-NEXT: .p2align 2
809 ; SOFT-NEXT: @ %bb.3:
810 ; SOFT-NEXT: .LCPI14_0:
811 ; SOFT-NEXT: .long 65535 @ 0xffff
830 ; SOFT-LABEL: stest_f16i16:
831 ; SOFT: @ %bb.0: @ %entry
832 ; SOFT-NEXT: .save {r7, lr}
833 ; SOFT-NEXT: push {r7, lr}
834 ; SOFT-NEXT: uxth r0, r0
835 ; SOFT-NEXT: bl __aeabi_h2f
836 ; SOFT-NEXT: bl __aeabi_f2iz
837 ; SOFT-NEXT: ldr r1, .LCPI15_0
838 ; SOFT-NEXT: cmp r0, r1
839 ; SOFT-NEXT: blt .LBB15_2
840 ; SOFT-NEXT: @ %bb.1: @ %entry
841 ; SOFT-NEXT: mov r0, r1
842 ; SOFT-NEXT: .LBB15_2: @ %entry
843 ; SOFT-NEXT: ldr r1, .LCPI15_1
844 ; SOFT-NEXT: cmp r0, r1
845 ; SOFT-NEXT: bgt .LBB15_4
846 ; SOFT-NEXT: @ %bb.3: @ %entry
847 ; SOFT-NEXT: mov r0, r1
848 ; SOFT-NEXT: .LBB15_4: @ %entry
849 ; SOFT-NEXT: pop {r7, pc}
850 ; SOFT-NEXT: .p2align 2
851 ; SOFT-NEXT: @ %bb.5:
852 ; SOFT-NEXT: .LCPI15_0:
853 ; SOFT-NEXT: .long 32767 @ 0x7fff
854 ; SOFT-NEXT: .LCPI15_1:
855 ; SOFT-NEXT: .long 4294934528 @ 0xffff8000
886 ; SOFT-LABEL: utesth_f16i16:
887 ; SOFT: @ %bb.0: @ %entry
888 ; SOFT-NEXT: .save {r7, lr}
889 ; SOFT-NEXT: push {r7, lr}
890 ; SOFT-NEXT: uxth r0, r0
891 ; SOFT-NEXT: bl __aeabi_h2f
892 ; SOFT-NEXT: bl __aeabi_f2uiz
893 ; SOFT-NEXT: ldr r1, .LCPI16_0
894 ; SOFT-NEXT: cmp r0, r1
895 ; SOFT-NEXT: blo .LBB16_2
896 ; SOFT-NEXT: @ %bb.1: @ %entry
897 ; SOFT-NEXT: mov r0, r1
898 ; SOFT-NEXT: .LBB16_2: @ %entry
899 ; SOFT-NEXT: pop {r7, pc}
900 ; SOFT-NEXT: .p2align 2
901 ; SOFT-NEXT: @ %bb.3:
902 ; SOFT-NEXT: .LCPI16_0:
903 ; SOFT-NEXT: .long 65535 @ 0xffff
937 ; SOFT-LABEL: ustest_f16i16:
938 ; SOFT: @ %bb.0: @ %entry
939 ; SOFT-NEXT: .save {r7, lr}
940 ; SOFT-NEXT: push {r7, lr}
941 ; SOFT-NEXT: uxth r0, r0
942 ; SOFT-NEXT: bl __aeabi_h2f
943 ; SOFT-NEXT: bl __aeabi_f2iz
944 ; SOFT-NEXT: ldr r1, .LCPI17_0
945 ; SOFT-NEXT: cmp r0, r1
946 ; SOFT-NEXT: blt .LBB17_2
947 ; SOFT-NEXT: @ %bb.1: @ %entry
948 ; SOFT-NEXT: mov r0, r1
949 ; SOFT-NEXT: .LBB17_2: @ %entry
950 ; SOFT-NEXT: asrs r1, r0, #31
951 ; SOFT-NEXT: bics r0, r1
952 ; SOFT-NEXT: pop {r7, pc}
953 ; SOFT-NEXT: .p2align 2
954 ; SOFT-NEXT: @ %bb.3:
955 ; SOFT-NEXT: .LCPI17_0:
956 ; SOFT-NEXT: .long 65535 @ 0xffff
989 ; SOFT-LABEL: stest_f64i64:
990 ; SOFT: @ %bb.0: @ %entry
991 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
992 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
993 ; SOFT-NEXT: .pad #12
994 ; SOFT-NEXT: sub sp, #12
995 ; SOFT-NEXT: bl __fixdfti
996 ; SOFT-NEXT: mov r6, r0
997 ; SOFT-NEXT: movs r4, #1
998 ; SOFT-NEXT: movs r5, #0
999 ; SOFT-NEXT: ldr r0, .LCPI18_0
1000 ; SOFT-NEXT: adds r7, r6, #1
1001 ; SOFT-NEXT: mov r7, r1
1002 ; SOFT-NEXT: sbcs r7, r0
1003 ; SOFT-NEXT: mov r7, r2
1004 ; SOFT-NEXT: sbcs r7, r5
1005 ; SOFT-NEXT: mov r7, r3
1006 ; SOFT-NEXT: sbcs r7, r5
1007 ; SOFT-NEXT: mov r7, r4
1008 ; SOFT-NEXT: bge .LBB18_13
1009 ; SOFT-NEXT: @ %bb.1: @ %entry
1010 ; SOFT-NEXT: cmp r7, #0
1011 ; SOFT-NEXT: beq .LBB18_14
1012 ; SOFT-NEXT: .LBB18_2: @ %entry
1013 ; SOFT-NEXT: cmp r7, #0
1014 ; SOFT-NEXT: bne .LBB18_4
1015 ; SOFT-NEXT: .LBB18_3: @ %entry
1016 ; SOFT-NEXT: mov r2, r5
1017 ; SOFT-NEXT: .LBB18_4: @ %entry
1018 ; SOFT-NEXT: str r2, [sp, #8] @ 4-byte Spill
1019 ; SOFT-NEXT: cmp r7, #0
1020 ; SOFT-NEXT: bne .LBB18_6
1021 ; SOFT-NEXT: @ %bb.5: @ %entry
1022 ; SOFT-NEXT: mov r1, r0
1023 ; SOFT-NEXT: .LBB18_6: @ %entry
1024 ; SOFT-NEXT: str r3, [sp, #4] @ 4-byte Spill
1025 ; SOFT-NEXT: mvns r0, r5
1026 ; SOFT-NEXT: cmp r7, #0
1027 ; SOFT-NEXT: bne .LBB18_8
1028 ; SOFT-NEXT: @ %bb.7: @ %entry
1029 ; SOFT-NEXT: mov r6, r0
1030 ; SOFT-NEXT: .LBB18_8: @ %entry
1031 ; SOFT-NEXT: lsls r3, r4, #31
1032 ; SOFT-NEXT: rsbs r7, r6, #0
1033 ; SOFT-NEXT: mov r7, r3
1034 ; SOFT-NEXT: sbcs r7, r1
1035 ; SOFT-NEXT: mov r7, r0
1036 ; SOFT-NEXT: ldr r2, [sp, #8] @ 4-byte Reload
1037 ; SOFT-NEXT: sbcs r7, r2
1038 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
1039 ; SOFT-NEXT: sbcs r0, r2
1040 ; SOFT-NEXT: bge .LBB18_15
1041 ; SOFT-NEXT: @ %bb.9: @ %entry
1042 ; SOFT-NEXT: cmp r4, #0
1043 ; SOFT-NEXT: beq .LBB18_16
1044 ; SOFT-NEXT: .LBB18_10: @ %entry
1045 ; SOFT-NEXT: cmp r4, #0
1046 ; SOFT-NEXT: bne .LBB18_12
1047 ; SOFT-NEXT: .LBB18_11: @ %entry
1048 ; SOFT-NEXT: mov r1, r3
1049 ; SOFT-NEXT: .LBB18_12: @ %entry
1050 ; SOFT-NEXT: mov r0, r6
1051 ; SOFT-NEXT: add sp, #12
1052 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
1053 ; SOFT-NEXT: .LBB18_13: @ %entry
1054 ; SOFT-NEXT: mov r7, r5
1055 ; SOFT-NEXT: cmp r7, #0
1056 ; SOFT-NEXT: bne .LBB18_2
1057 ; SOFT-NEXT: .LBB18_14: @ %entry
1058 ; SOFT-NEXT: mov r3, r5
1059 ; SOFT-NEXT: cmp r7, #0
1060 ; SOFT-NEXT: beq .LBB18_3
1061 ; SOFT-NEXT: b .LBB18_4
1062 ; SOFT-NEXT: .LBB18_15: @ %entry
1063 ; SOFT-NEXT: mov r4, r5
1064 ; SOFT-NEXT: cmp r4, #0
1065 ; SOFT-NEXT: bne .LBB18_10
1066 ; SOFT-NEXT: .LBB18_16: @ %entry
1067 ; SOFT-NEXT: mov r6, r5
1068 ; SOFT-NEXT: cmp r4, #0
1069 ; SOFT-NEXT: beq .LBB18_11
1070 ; SOFT-NEXT: b .LBB18_12
1071 ; SOFT-NEXT: .p2align 2
1072 ; SOFT-NEXT: @ %bb.17:
1073 ; SOFT-NEXT: .LCPI18_0:
1074 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
1151 ; SOFT-LABEL: utest_f64i64:
1152 ; SOFT: @ %bb.0: @ %entry
1153 ; SOFT-NEXT: .save {r4, lr}
1154 ; SOFT-NEXT: push {r4, lr}
1155 ; SOFT-NEXT: bl __fixunsdfti
1156 ; SOFT-NEXT: movs r4, #0
1157 ; SOFT-NEXT: subs r2, r2, #1
1158 ; SOFT-NEXT: sbcs r3, r4
1159 ; SOFT-NEXT: blo .LBB19_2
1160 ; SOFT-NEXT: @ %bb.1: @ %entry
1161 ; SOFT-NEXT: mov r2, r4
1162 ; SOFT-NEXT: cmp r2, #0
1163 ; SOFT-NEXT: beq .LBB19_3
1164 ; SOFT-NEXT: b .LBB19_4
1165 ; SOFT-NEXT: .LBB19_2:
1166 ; SOFT-NEXT: movs r2, #1
1167 ; SOFT-NEXT: cmp r2, #0
1168 ; SOFT-NEXT: bne .LBB19_4
1169 ; SOFT-NEXT: .LBB19_3: @ %entry
1170 ; SOFT-NEXT: mov r0, r4
1171 ; SOFT-NEXT: .LBB19_4: @ %entry
1172 ; SOFT-NEXT: cmp r2, #0
1173 ; SOFT-NEXT: beq .LBB19_6
1174 ; SOFT-NEXT: @ %bb.5: @ %entry
1175 ; SOFT-NEXT: pop {r4, pc}
1176 ; SOFT-NEXT: .LBB19_6: @ %entry
1177 ; SOFT-NEXT: mov r1, r4
1178 ; SOFT-NEXT: pop {r4, pc}
1219 ; SOFT-LABEL: ustest_f64i64:
1220 ; SOFT: @ %bb.0: @ %entry
1221 ; SOFT-NEXT: .save {r4, r5, r6, lr}
1222 ; SOFT-NEXT: push {r4, r5, r6, lr}
1223 ; SOFT-NEXT: bl __fixdfti
1224 ; SOFT-NEXT: movs r4, #1
1225 ; SOFT-NEXT: movs r5, #0
1226 ; SOFT-NEXT: subs r6, r2, #1
1227 ; SOFT-NEXT: mov r6, r3
1228 ; SOFT-NEXT: sbcs r6, r5
1229 ; SOFT-NEXT: mov r6, r4
1230 ; SOFT-NEXT: bge .LBB20_10
1231 ; SOFT-NEXT: @ %bb.1: @ %entry
1232 ; SOFT-NEXT: cmp r6, #0
1233 ; SOFT-NEXT: beq .LBB20_11
1234 ; SOFT-NEXT: .LBB20_2: @ %entry
1235 ; SOFT-NEXT: cmp r6, #0
1236 ; SOFT-NEXT: beq .LBB20_12
1237 ; SOFT-NEXT: .LBB20_3: @ %entry
1238 ; SOFT-NEXT: cmp r6, #0
1239 ; SOFT-NEXT: beq .LBB20_13
1240 ; SOFT-NEXT: .LBB20_4: @ %entry
1241 ; SOFT-NEXT: cmp r6, #0
1242 ; SOFT-NEXT: bne .LBB20_6
1243 ; SOFT-NEXT: .LBB20_5: @ %entry
1244 ; SOFT-NEXT: mov r0, r5
1245 ; SOFT-NEXT: .LBB20_6: @ %entry
1246 ; SOFT-NEXT: rsbs r6, r0, #0
1247 ; SOFT-NEXT: mov r6, r5
1248 ; SOFT-NEXT: sbcs r6, r1
1249 ; SOFT-NEXT: mov r6, r5
1250 ; SOFT-NEXT: sbcs r6, r2
1251 ; SOFT-NEXT: mov r2, r5
1252 ; SOFT-NEXT: sbcs r2, r3
1253 ; SOFT-NEXT: bge .LBB20_14
1254 ; SOFT-NEXT: @ %bb.7: @ %entry
1255 ; SOFT-NEXT: cmp r4, #0
1256 ; SOFT-NEXT: beq .LBB20_15
1257 ; SOFT-NEXT: .LBB20_8: @ %entry
1258 ; SOFT-NEXT: cmp r4, #0
1259 ; SOFT-NEXT: beq .LBB20_16
1260 ; SOFT-NEXT: .LBB20_9: @ %entry
1261 ; SOFT-NEXT: pop {r4, r5, r6, pc}
1262 ; SOFT-NEXT: .LBB20_10: @ %entry
1263 ; SOFT-NEXT: mov r6, r5
1264 ; SOFT-NEXT: cmp r6, #0
1265 ; SOFT-NEXT: bne .LBB20_2
1266 ; SOFT-NEXT: .LBB20_11: @ %entry
1267 ; SOFT-NEXT: mov r3, r5
1268 ; SOFT-NEXT: cmp r6, #0
1269 ; SOFT-NEXT: bne .LBB20_3
1270 ; SOFT-NEXT: .LBB20_12: @ %entry
1271 ; SOFT-NEXT: mov r2, r4
1272 ; SOFT-NEXT: cmp r6, #0
1273 ; SOFT-NEXT: bne .LBB20_4
1274 ; SOFT-NEXT: .LBB20_13: @ %entry
1275 ; SOFT-NEXT: mov r1, r5
1276 ; SOFT-NEXT: cmp r6, #0
1277 ; SOFT-NEXT: beq .LBB20_5
1278 ; SOFT-NEXT: b .LBB20_6
1279 ; SOFT-NEXT: .LBB20_14: @ %entry
1280 ; SOFT-NEXT: mov r4, r5
1281 ; SOFT-NEXT: cmp r4, #0
1282 ; SOFT-NEXT: bne .LBB20_8
1283 ; SOFT-NEXT: .LBB20_15: @ %entry
1284 ; SOFT-NEXT: mov r0, r4
1285 ; SOFT-NEXT: cmp r4, #0
1286 ; SOFT-NEXT: bne .LBB20_9
1287 ; SOFT-NEXT: .LBB20_16: @ %entry
1288 ; SOFT-NEXT: mov r1, r4
1289 ; SOFT-NEXT: pop {r4, r5, r6, pc}
1355 ; SOFT-LABEL: stest_f32i64:
1356 ; SOFT: @ %bb.0: @ %entry
1357 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
1358 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
1359 ; SOFT-NEXT: .pad #12
1360 ; SOFT-NEXT: sub sp, #12
1361 ; SOFT-NEXT: bl __fixsfti
1362 ; SOFT-NEXT: mov r6, r0
1363 ; SOFT-NEXT: movs r4, #1
1364 ; SOFT-NEXT: movs r5, #0
1365 ; SOFT-NEXT: ldr r0, .LCPI21_0
1366 ; SOFT-NEXT: adds r7, r6, #1
1367 ; SOFT-NEXT: mov r7, r1
1368 ; SOFT-NEXT: sbcs r7, r0
1369 ; SOFT-NEXT: mov r7, r2
1370 ; SOFT-NEXT: sbcs r7, r5
1371 ; SOFT-NEXT: mov r7, r3
1372 ; SOFT-NEXT: sbcs r7, r5
1373 ; SOFT-NEXT: mov r7, r4
1374 ; SOFT-NEXT: bge .LBB21_13
1375 ; SOFT-NEXT: @ %bb.1: @ %entry
1376 ; SOFT-NEXT: cmp r7, #0
1377 ; SOFT-NEXT: beq .LBB21_14
1378 ; SOFT-NEXT: .LBB21_2: @ %entry
1379 ; SOFT-NEXT: cmp r7, #0
1380 ; SOFT-NEXT: bne .LBB21_4
1381 ; SOFT-NEXT: .LBB21_3: @ %entry
1382 ; SOFT-NEXT: mov r2, r5
1383 ; SOFT-NEXT: .LBB21_4: @ %entry
1384 ; SOFT-NEXT: str r2, [sp, #8] @ 4-byte Spill
1385 ; SOFT-NEXT: cmp r7, #0
1386 ; SOFT-NEXT: bne .LBB21_6
1387 ; SOFT-NEXT: @ %bb.5: @ %entry
1388 ; SOFT-NEXT: mov r1, r0
1389 ; SOFT-NEXT: .LBB21_6: @ %entry
1390 ; SOFT-NEXT: str r3, [sp, #4] @ 4-byte Spill
1391 ; SOFT-NEXT: mvns r0, r5
1392 ; SOFT-NEXT: cmp r7, #0
1393 ; SOFT-NEXT: bne .LBB21_8
1394 ; SOFT-NEXT: @ %bb.7: @ %entry
1395 ; SOFT-NEXT: mov r6, r0
1396 ; SOFT-NEXT: .LBB21_8: @ %entry
1397 ; SOFT-NEXT: lsls r3, r4, #31
1398 ; SOFT-NEXT: rsbs r7, r6, #0
1399 ; SOFT-NEXT: mov r7, r3
1400 ; SOFT-NEXT: sbcs r7, r1
1401 ; SOFT-NEXT: mov r7, r0
1402 ; SOFT-NEXT: ldr r2, [sp, #8] @ 4-byte Reload
1403 ; SOFT-NEXT: sbcs r7, r2
1404 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
1405 ; SOFT-NEXT: sbcs r0, r2
1406 ; SOFT-NEXT: bge .LBB21_15
1407 ; SOFT-NEXT: @ %bb.9: @ %entry
1408 ; SOFT-NEXT: cmp r4, #0
1409 ; SOFT-NEXT: beq .LBB21_16
1410 ; SOFT-NEXT: .LBB21_10: @ %entry
1411 ; SOFT-NEXT: cmp r4, #0
1412 ; SOFT-NEXT: bne .LBB21_12
1413 ; SOFT-NEXT: .LBB21_11: @ %entry
1414 ; SOFT-NEXT: mov r1, r3
1415 ; SOFT-NEXT: .LBB21_12: @ %entry
1416 ; SOFT-NEXT: mov r0, r6
1417 ; SOFT-NEXT: add sp, #12
1418 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
1419 ; SOFT-NEXT: .LBB21_13: @ %entry
1420 ; SOFT-NEXT: mov r7, r5
1421 ; SOFT-NEXT: cmp r7, #0
1422 ; SOFT-NEXT: bne .LBB21_2
1423 ; SOFT-NEXT: .LBB21_14: @ %entry
1424 ; SOFT-NEXT: mov r3, r5
1425 ; SOFT-NEXT: cmp r7, #0
1426 ; SOFT-NEXT: beq .LBB21_3
1427 ; SOFT-NEXT: b .LBB21_4
1428 ; SOFT-NEXT: .LBB21_15: @ %entry
1429 ; SOFT-NEXT: mov r4, r5
1430 ; SOFT-NEXT: cmp r4, #0
1431 ; SOFT-NEXT: bne .LBB21_10
1432 ; SOFT-NEXT: .LBB21_16: @ %entry
1433 ; SOFT-NEXT: mov r6, r5
1434 ; SOFT-NEXT: cmp r4, #0
1435 ; SOFT-NEXT: beq .LBB21_11
1436 ; SOFT-NEXT: b .LBB21_12
1437 ; SOFT-NEXT: .p2align 2
1438 ; SOFT-NEXT: @ %bb.17:
1439 ; SOFT-NEXT: .LCPI21_0:
1440 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
1517 ; SOFT-LABEL: utest_f32i64:
1518 ; SOFT: @ %bb.0: @ %entry
1519 ; SOFT-NEXT: .save {r4, lr}
1520 ; SOFT-NEXT: push {r4, lr}
1521 ; SOFT-NEXT: bl __fixunssfti
1522 ; SOFT-NEXT: movs r4, #0
1523 ; SOFT-NEXT: subs r2, r2, #1
1524 ; SOFT-NEXT: sbcs r3, r4
1525 ; SOFT-NEXT: blo .LBB22_2
1526 ; SOFT-NEXT: @ %bb.1: @ %entry
1527 ; SOFT-NEXT: mov r2, r4
1528 ; SOFT-NEXT: cmp r2, #0
1529 ; SOFT-NEXT: beq .LBB22_3
1530 ; SOFT-NEXT: b .LBB22_4
1531 ; SOFT-NEXT: .LBB22_2:
1532 ; SOFT-NEXT: movs r2, #1
1533 ; SOFT-NEXT: cmp r2, #0
1534 ; SOFT-NEXT: bne .LBB22_4
1535 ; SOFT-NEXT: .LBB22_3: @ %entry
1536 ; SOFT-NEXT: mov r0, r4
1537 ; SOFT-NEXT: .LBB22_4: @ %entry
1538 ; SOFT-NEXT: cmp r2, #0
1539 ; SOFT-NEXT: beq .LBB22_6
1540 ; SOFT-NEXT: @ %bb.5: @ %entry
1541 ; SOFT-NEXT: pop {r4, pc}
1542 ; SOFT-NEXT: .LBB22_6: @ %entry
1543 ; SOFT-NEXT: mov r1, r4
1544 ; SOFT-NEXT: pop {r4, pc}
1585 ; SOFT-LABEL: ustest_f32i64:
1586 ; SOFT: @ %bb.0: @ %entry
1587 ; SOFT-NEXT: .save {r4, r5, r6, lr}
1588 ; SOFT-NEXT: push {r4, r5, r6, lr}
1589 ; SOFT-NEXT: bl __fixsfti
1590 ; SOFT-NEXT: movs r4, #1
1591 ; SOFT-NEXT: movs r5, #0
1592 ; SOFT-NEXT: subs r6, r2, #1
1593 ; SOFT-NEXT: mov r6, r3
1594 ; SOFT-NEXT: sbcs r6, r5
1595 ; SOFT-NEXT: mov r6, r4
1596 ; SOFT-NEXT: bge .LBB23_10
1597 ; SOFT-NEXT: @ %bb.1: @ %entry
1598 ; SOFT-NEXT: cmp r6, #0
1599 ; SOFT-NEXT: beq .LBB23_11
1600 ; SOFT-NEXT: .LBB23_2: @ %entry
1601 ; SOFT-NEXT: cmp r6, #0
1602 ; SOFT-NEXT: beq .LBB23_12
1603 ; SOFT-NEXT: .LBB23_3: @ %entry
1604 ; SOFT-NEXT: cmp r6, #0
1605 ; SOFT-NEXT: beq .LBB23_13
1606 ; SOFT-NEXT: .LBB23_4: @ %entry
1607 ; SOFT-NEXT: cmp r6, #0
1608 ; SOFT-NEXT: bne .LBB23_6
1609 ; SOFT-NEXT: .LBB23_5: @ %entry
1610 ; SOFT-NEXT: mov r0, r5
1611 ; SOFT-NEXT: .LBB23_6: @ %entry
1612 ; SOFT-NEXT: rsbs r6, r0, #0
1613 ; SOFT-NEXT: mov r6, r5
1614 ; SOFT-NEXT: sbcs r6, r1
1615 ; SOFT-NEXT: mov r6, r5
1616 ; SOFT-NEXT: sbcs r6, r2
1617 ; SOFT-NEXT: mov r2, r5
1618 ; SOFT-NEXT: sbcs r2, r3
1619 ; SOFT-NEXT: bge .LBB23_14
1620 ; SOFT-NEXT: @ %bb.7: @ %entry
1621 ; SOFT-NEXT: cmp r4, #0
1622 ; SOFT-NEXT: beq .LBB23_15
1623 ; SOFT-NEXT: .LBB23_8: @ %entry
1624 ; SOFT-NEXT: cmp r4, #0
1625 ; SOFT-NEXT: beq .LBB23_16
1626 ; SOFT-NEXT: .LBB23_9: @ %entry
1627 ; SOFT-NEXT: pop {r4, r5, r6, pc}
1628 ; SOFT-NEXT: .LBB23_10: @ %entry
1629 ; SOFT-NEXT: mov r6, r5
1630 ; SOFT-NEXT: cmp r6, #0
1631 ; SOFT-NEXT: bne .LBB23_2
1632 ; SOFT-NEXT: .LBB23_11: @ %entry
1633 ; SOFT-NEXT: mov r3, r5
1634 ; SOFT-NEXT: cmp r6, #0
1635 ; SOFT-NEXT: bne .LBB23_3
1636 ; SOFT-NEXT: .LBB23_12: @ %entry
1637 ; SOFT-NEXT: mov r2, r4
1638 ; SOFT-NEXT: cmp r6, #0
1639 ; SOFT-NEXT: bne .LBB23_4
1640 ; SOFT-NEXT: .LBB23_13: @ %entry
1641 ; SOFT-NEXT: mov r1, r5
1642 ; SOFT-NEXT: cmp r6, #0
1643 ; SOFT-NEXT: beq .LBB23_5
1644 ; SOFT-NEXT: b .LBB23_6
1645 ; SOFT-NEXT: .LBB23_14: @ %entry
1646 ; SOFT-NEXT: mov r4, r5
1647 ; SOFT-NEXT: cmp r4, #0
1648 ; SOFT-NEXT: bne .LBB23_8
1649 ; SOFT-NEXT: .LBB23_15: @ %entry
1650 ; SOFT-NEXT: mov r0, r4
1651 ; SOFT-NEXT: cmp r4, #0
1652 ; SOFT-NEXT: bne .LBB23_9
1653 ; SOFT-NEXT: .LBB23_16: @ %entry
1654 ; SOFT-NEXT: mov r1, r4
1655 ; SOFT-NEXT: pop {r4, r5, r6, pc}
1721 ; SOFT-LABEL: stest_f16i64:
1722 ; SOFT: @ %bb.0: @ %entry
1723 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
1724 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
1725 ; SOFT-NEXT: .pad #12
1726 ; SOFT-NEXT: sub sp, #12
1727 ; SOFT-NEXT: uxth r0, r0
1728 ; SOFT-NEXT: bl __aeabi_h2f
1729 ; SOFT-NEXT: bl __fixsfti
1730 ; SOFT-NEXT: mov r6, r0
1731 ; SOFT-NEXT: movs r4, #1
1732 ; SOFT-NEXT: movs r5, #0
1733 ; SOFT-NEXT: ldr r0, .LCPI24_0
1734 ; SOFT-NEXT: adds r7, r6, #1
1735 ; SOFT-NEXT: mov r7, r1
1736 ; SOFT-NEXT: sbcs r7, r0
1737 ; SOFT-NEXT: mov r7, r2
1738 ; SOFT-NEXT: sbcs r7, r5
1739 ; SOFT-NEXT: mov r7, r3
1740 ; SOFT-NEXT: sbcs r7, r5
1741 ; SOFT-NEXT: mov r7, r4
1742 ; SOFT-NEXT: bge .LBB24_13
1743 ; SOFT-NEXT: @ %bb.1: @ %entry
1744 ; SOFT-NEXT: cmp r7, #0
1745 ; SOFT-NEXT: beq .LBB24_14
1746 ; SOFT-NEXT: .LBB24_2: @ %entry
1747 ; SOFT-NEXT: cmp r7, #0
1748 ; SOFT-NEXT: bne .LBB24_4
1749 ; SOFT-NEXT: .LBB24_3: @ %entry
1750 ; SOFT-NEXT: mov r2, r5
1751 ; SOFT-NEXT: .LBB24_4: @ %entry
1752 ; SOFT-NEXT: str r2, [sp, #8] @ 4-byte Spill
1753 ; SOFT-NEXT: cmp r7, #0
1754 ; SOFT-NEXT: bne .LBB24_6
1755 ; SOFT-NEXT: @ %bb.5: @ %entry
1756 ; SOFT-NEXT: mov r1, r0
1757 ; SOFT-NEXT: .LBB24_6: @ %entry
1758 ; SOFT-NEXT: str r3, [sp, #4] @ 4-byte Spill
1759 ; SOFT-NEXT: mvns r0, r5
1760 ; SOFT-NEXT: cmp r7, #0
1761 ; SOFT-NEXT: bne .LBB24_8
1762 ; SOFT-NEXT: @ %bb.7: @ %entry
1763 ; SOFT-NEXT: mov r6, r0
1764 ; SOFT-NEXT: .LBB24_8: @ %entry
1765 ; SOFT-NEXT: lsls r3, r4, #31
1766 ; SOFT-NEXT: rsbs r7, r6, #0
1767 ; SOFT-NEXT: mov r7, r3
1768 ; SOFT-NEXT: sbcs r7, r1
1769 ; SOFT-NEXT: mov r7, r0
1770 ; SOFT-NEXT: ldr r2, [sp, #8] @ 4-byte Reload
1771 ; SOFT-NEXT: sbcs r7, r2
1772 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
1773 ; SOFT-NEXT: sbcs r0, r2
1774 ; SOFT-NEXT: bge .LBB24_15
1775 ; SOFT-NEXT: @ %bb.9: @ %entry
1776 ; SOFT-NEXT: cmp r4, #0
1777 ; SOFT-NEXT: beq .LBB24_16
1778 ; SOFT-NEXT: .LBB24_10: @ %entry
1779 ; SOFT-NEXT: cmp r4, #0
1780 ; SOFT-NEXT: bne .LBB24_12
1781 ; SOFT-NEXT: .LBB24_11: @ %entry
1782 ; SOFT-NEXT: mov r1, r3
1783 ; SOFT-NEXT: .LBB24_12: @ %entry
1784 ; SOFT-NEXT: mov r0, r6
1785 ; SOFT-NEXT: add sp, #12
1786 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
1787 ; SOFT-NEXT: .LBB24_13: @ %entry
1788 ; SOFT-NEXT: mov r7, r5
1789 ; SOFT-NEXT: cmp r7, #0
1790 ; SOFT-NEXT: bne .LBB24_2
1791 ; SOFT-NEXT: .LBB24_14: @ %entry
1792 ; SOFT-NEXT: mov r3, r5
1793 ; SOFT-NEXT: cmp r7, #0
1794 ; SOFT-NEXT: beq .LBB24_3
1795 ; SOFT-NEXT: b .LBB24_4
1796 ; SOFT-NEXT: .LBB24_15: @ %entry
1797 ; SOFT-NEXT: mov r4, r5
1798 ; SOFT-NEXT: cmp r4, #0
1799 ; SOFT-NEXT: bne .LBB24_10
1800 ; SOFT-NEXT: .LBB24_16: @ %entry
1801 ; SOFT-NEXT: mov r6, r5
1802 ; SOFT-NEXT: cmp r4, #0
1803 ; SOFT-NEXT: beq .LBB24_11
1804 ; SOFT-NEXT: b .LBB24_12
1805 ; SOFT-NEXT: .p2align 2
1806 ; SOFT-NEXT: @ %bb.17:
1807 ; SOFT-NEXT: .LCPI24_0:
1808 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
1890 ; SOFT-LABEL: utesth_f16i64:
1891 ; SOFT: @ %bb.0: @ %entry
1892 ; SOFT-NEXT: .save {r4, lr}
1893 ; SOFT-NEXT: push {r4, lr}
1894 ; SOFT-NEXT: uxth r0, r0
1895 ; SOFT-NEXT: bl __aeabi_h2f
1896 ; SOFT-NEXT: bl __fixunssfti
1897 ; SOFT-NEXT: movs r4, #0
1898 ; SOFT-NEXT: subs r2, r2, #1
1899 ; SOFT-NEXT: sbcs r3, r4
1900 ; SOFT-NEXT: blo .LBB25_2
1901 ; SOFT-NEXT: @ %bb.1: @ %entry
1902 ; SOFT-NEXT: mov r2, r4
1903 ; SOFT-NEXT: cmp r2, #0
1904 ; SOFT-NEXT: beq .LBB25_3
1905 ; SOFT-NEXT: b .LBB25_4
1906 ; SOFT-NEXT: .LBB25_2:
1907 ; SOFT-NEXT: movs r2, #1
1908 ; SOFT-NEXT: cmp r2, #0
1909 ; SOFT-NEXT: bne .LBB25_4
1910 ; SOFT-NEXT: .LBB25_3: @ %entry
1911 ; SOFT-NEXT: mov r0, r4
1912 ; SOFT-NEXT: .LBB25_4: @ %entry
1913 ; SOFT-NEXT: cmp r2, #0
1914 ; SOFT-NEXT: beq .LBB25_6
1915 ; SOFT-NEXT: @ %bb.5: @ %entry
1916 ; SOFT-NEXT: pop {r4, pc}
1917 ; SOFT-NEXT: .LBB25_6: @ %entry
1918 ; SOFT-NEXT: mov r1, r4
1919 ; SOFT-NEXT: pop {r4, pc}
1965 ; SOFT-LABEL: ustest_f16i64:
1966 ; SOFT: @ %bb.0: @ %entry
1967 ; SOFT-NEXT: .save {r4, r5, r6, lr}
1968 ; SOFT-NEXT: push {r4, r5, r6, lr}
1969 ; SOFT-NEXT: uxth r0, r0
1970 ; SOFT-NEXT: bl __aeabi_h2f
1971 ; SOFT-NEXT: bl __fixsfti
1972 ; SOFT-NEXT: movs r4, #1
1973 ; SOFT-NEXT: movs r5, #0
1974 ; SOFT-NEXT: subs r6, r2, #1
1975 ; SOFT-NEXT: mov r6, r3
1976 ; SOFT-NEXT: sbcs r6, r5
1977 ; SOFT-NEXT: mov r6, r4
1978 ; SOFT-NEXT: bge .LBB26_10
1979 ; SOFT-NEXT: @ %bb.1: @ %entry
1980 ; SOFT-NEXT: cmp r6, #0
1981 ; SOFT-NEXT: beq .LBB26_11
1982 ; SOFT-NEXT: .LBB26_2: @ %entry
1983 ; SOFT-NEXT: cmp r6, #0
1984 ; SOFT-NEXT: beq .LBB26_12
1985 ; SOFT-NEXT: .LBB26_3: @ %entry
1986 ; SOFT-NEXT: cmp r6, #0
1987 ; SOFT-NEXT: beq .LBB26_13
1988 ; SOFT-NEXT: .LBB26_4: @ %entry
1989 ; SOFT-NEXT: cmp r6, #0
1990 ; SOFT-NEXT: bne .LBB26_6
1991 ; SOFT-NEXT: .LBB26_5: @ %entry
1992 ; SOFT-NEXT: mov r0, r5
1993 ; SOFT-NEXT: .LBB26_6: @ %entry
1994 ; SOFT-NEXT: rsbs r6, r0, #0
1995 ; SOFT-NEXT: mov r6, r5
1996 ; SOFT-NEXT: sbcs r6, r1
1997 ; SOFT-NEXT: mov r6, r5
1998 ; SOFT-NEXT: sbcs r6, r2
1999 ; SOFT-NEXT: mov r2, r5
2000 ; SOFT-NEXT: sbcs r2, r3
2001 ; SOFT-NEXT: bge .LBB26_14
2002 ; SOFT-NEXT: @ %bb.7: @ %entry
2003 ; SOFT-NEXT: cmp r4, #0
2004 ; SOFT-NEXT: beq .LBB26_15
2005 ; SOFT-NEXT: .LBB26_8: @ %entry
2006 ; SOFT-NEXT: cmp r4, #0
2007 ; SOFT-NEXT: beq .LBB26_16
2008 ; SOFT-NEXT: .LBB26_9: @ %entry
2009 ; SOFT-NEXT: pop {r4, r5, r6, pc}
2010 ; SOFT-NEXT: .LBB26_10: @ %entry
2011 ; SOFT-NEXT: mov r6, r5
2012 ; SOFT-NEXT: cmp r6, #0
2013 ; SOFT-NEXT: bne .LBB26_2
2014 ; SOFT-NEXT: .LBB26_11: @ %entry
2015 ; SOFT-NEXT: mov r3, r5
2016 ; SOFT-NEXT: cmp r6, #0
2017 ; SOFT-NEXT: bne .LBB26_3
2018 ; SOFT-NEXT: .LBB26_12: @ %entry
2019 ; SOFT-NEXT: mov r2, r4
2020 ; SOFT-NEXT: cmp r6, #0
2021 ; SOFT-NEXT: bne .LBB26_4
2022 ; SOFT-NEXT: .LBB26_13: @ %entry
2023 ; SOFT-NEXT: mov r1, r5
2024 ; SOFT-NEXT: cmp r6, #0
2025 ; SOFT-NEXT: beq .LBB26_5
2026 ; SOFT-NEXT: b .LBB26_6
2027 ; SOFT-NEXT: .LBB26_14: @ %entry
2028 ; SOFT-NEXT: mov r4, r5
2029 ; SOFT-NEXT: cmp r4, #0
2030 ; SOFT-NEXT: bne .LBB26_8
2031 ; SOFT-NEXT: .LBB26_15: @ %entry
2032 ; SOFT-NEXT: mov r0, r4
2033 ; SOFT-NEXT: cmp r4, #0
2034 ; SOFT-NEXT: bne .LBB26_9
2035 ; SOFT-NEXT: .LBB26_16: @ %entry
2036 ; SOFT-NEXT: mov r1, r4
2037 ; SOFT-NEXT: pop {r4, r5, r6, pc}
2113 ; SOFT-LABEL: stest_f64i32_mm:
2114 ; SOFT: @ %bb.0: @ %entry
2115 ; SOFT-NEXT: .save {r7, lr}
2116 ; SOFT-NEXT: push {r7, lr}
2117 ; SOFT-NEXT: bl __aeabi_d2lz
2118 ; SOFT-NEXT: mov r2, r0
2119 ; SOFT-NEXT: ldr r3, .LCPI27_0
2120 ; SOFT-NEXT: cmp r0, r3
2121 ; SOFT-NEXT: bhs .LBB27_9
2122 ; SOFT-NEXT: @ %bb.1: @ %entry
2123 ; SOFT-NEXT: cmp r1, #0
2124 ; SOFT-NEXT: bpl .LBB27_10
2125 ; SOFT-NEXT: .LBB27_2: @ %entry
2126 ; SOFT-NEXT: cmp r1, #0
2127 ; SOFT-NEXT: bne .LBB27_11
2128 ; SOFT-NEXT: .LBB27_3: @ %entry
2129 ; SOFT-NEXT: cmp r1, #0
2130 ; SOFT-NEXT: bmi .LBB27_5
2131 ; SOFT-NEXT: .LBB27_4: @ %entry
2132 ; SOFT-NEXT: movs r1, #0
2133 ; SOFT-NEXT: .LBB27_5: @ %entry
2134 ; SOFT-NEXT: movs r2, #1
2135 ; SOFT-NEXT: lsls r3, r2, #31
2136 ; SOFT-NEXT: cmp r1, #0
2137 ; SOFT-NEXT: mov r2, r0
2138 ; SOFT-NEXT: blt .LBB27_12
2139 ; SOFT-NEXT: @ %bb.6: @ %entry
2140 ; SOFT-NEXT: cmp r0, r3
2141 ; SOFT-NEXT: bls .LBB27_13
2142 ; SOFT-NEXT: .LBB27_7: @ %entry
2143 ; SOFT-NEXT: adds r1, r1, #1
2144 ; SOFT-NEXT: bne .LBB27_14
2145 ; SOFT-NEXT: .LBB27_8: @ %entry
2146 ; SOFT-NEXT: pop {r7, pc}
2147 ; SOFT-NEXT: .LBB27_9: @ %entry
2148 ; SOFT-NEXT: mov r0, r3
2149 ; SOFT-NEXT: cmp r1, #0
2150 ; SOFT-NEXT: bmi .LBB27_2
2151 ; SOFT-NEXT: .LBB27_10: @ %entry
2152 ; SOFT-NEXT: mov r2, r3
2153 ; SOFT-NEXT: cmp r1, #0
2154 ; SOFT-NEXT: beq .LBB27_3
2155 ; SOFT-NEXT: .LBB27_11: @ %entry
2156 ; SOFT-NEXT: mov r0, r2
2157 ; SOFT-NEXT: cmp r1, #0
2158 ; SOFT-NEXT: bpl .LBB27_4
2159 ; SOFT-NEXT: b .LBB27_5
2160 ; SOFT-NEXT: .LBB27_12: @ %entry
2161 ; SOFT-NEXT: mov r2, r3
2162 ; SOFT-NEXT: cmp r0, r3
2163 ; SOFT-NEXT: bhi .LBB27_7
2164 ; SOFT-NEXT: .LBB27_13: @ %entry
2165 ; SOFT-NEXT: mov r0, r3
2166 ; SOFT-NEXT: adds r1, r1, #1
2167 ; SOFT-NEXT: beq .LBB27_8
2168 ; SOFT-NEXT: .LBB27_14: @ %entry
2169 ; SOFT-NEXT: mov r0, r2
2170 ; SOFT-NEXT: pop {r7, pc}
2171 ; SOFT-NEXT: .p2align 2
2172 ; SOFT-NEXT: @ %bb.15:
2173 ; SOFT-NEXT: .LCPI27_0:
2174 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
2221 ; SOFT-LABEL: utest_f64i32_mm:
2222 ; SOFT: @ %bb.0: @ %entry
2223 ; SOFT-NEXT: .save {r7, lr}
2224 ; SOFT-NEXT: push {r7, lr}
2225 ; SOFT-NEXT: bl __aeabi_d2ulz
2226 ; SOFT-NEXT: cmp r1, #0
2227 ; SOFT-NEXT: beq .LBB28_2
2228 ; SOFT-NEXT: @ %bb.1: @ %entry
2229 ; SOFT-NEXT: movs r0, #0
2230 ; SOFT-NEXT: mvns r0, r0
2231 ; SOFT-NEXT: .LBB28_2: @ %entry
2232 ; SOFT-NEXT: pop {r7, pc}
2258 ; SOFT-LABEL: ustest_f64i32_mm:
2259 ; SOFT: @ %bb.0: @ %entry
2260 ; SOFT-NEXT: .save {r7, lr}
2261 ; SOFT-NEXT: push {r7, lr}
2262 ; SOFT-NEXT: bl __aeabi_d2lz
2263 ; SOFT-NEXT: movs r2, #0
2264 ; SOFT-NEXT: cmp r1, #0
2265 ; SOFT-NEXT: mov r3, r0
2266 ; SOFT-NEXT: bpl .LBB29_7
2267 ; SOFT-NEXT: @ %bb.1: @ %entry
2268 ; SOFT-NEXT: cmp r1, #0
2269 ; SOFT-NEXT: bne .LBB29_8
2270 ; SOFT-NEXT: .LBB29_2: @ %entry
2271 ; SOFT-NEXT: cmp r1, #0
2272 ; SOFT-NEXT: bmi .LBB29_4
2273 ; SOFT-NEXT: .LBB29_3: @ %entry
2274 ; SOFT-NEXT: mov r1, r2
2275 ; SOFT-NEXT: .LBB29_4: @ %entry
2276 ; SOFT-NEXT: cmp r1, #0
2277 ; SOFT-NEXT: mov r3, r0
2278 ; SOFT-NEXT: ble .LBB29_9
2279 ; SOFT-NEXT: @ %bb.5: @ %entry
2280 ; SOFT-NEXT: cmp r1, #0
2281 ; SOFT-NEXT: bne .LBB29_10
2282 ; SOFT-NEXT: .LBB29_6: @ %entry
2283 ; SOFT-NEXT: pop {r7, pc}
2284 ; SOFT-NEXT: .LBB29_7: @ %entry
2285 ; SOFT-NEXT: mvns r3, r2
2286 ; SOFT-NEXT: cmp r1, #0
2287 ; SOFT-NEXT: beq .LBB29_2
2288 ; SOFT-NEXT: .LBB29_8: @ %entry
2289 ; SOFT-NEXT: mov r0, r3
2290 ; SOFT-NEXT: cmp r1, #0
2291 ; SOFT-NEXT: bpl .LBB29_3
2292 ; SOFT-NEXT: b .LBB29_4
2293 ; SOFT-NEXT: .LBB29_9: @ %entry
2294 ; SOFT-NEXT: mov r3, r2
2295 ; SOFT-NEXT: cmp r1, #0
2296 ; SOFT-NEXT: beq .LBB29_6
2297 ; SOFT-NEXT: .LBB29_10: @ %entry
2298 ; SOFT-NEXT: mov r0, r3
2299 ; SOFT-NEXT: pop {r7, pc}
2337 ; SOFT-LABEL: stest_f32i32_mm:
2338 ; SOFT: @ %bb.0: @ %entry
2339 ; SOFT-NEXT: .save {r7, lr}
2340 ; SOFT-NEXT: push {r7, lr}
2341 ; SOFT-NEXT: bl __aeabi_f2lz
2342 ; SOFT-NEXT: mov r2, r0
2343 ; SOFT-NEXT: ldr r3, .LCPI30_0
2344 ; SOFT-NEXT: cmp r0, r3
2345 ; SOFT-NEXT: bhs .LBB30_9
2346 ; SOFT-NEXT: @ %bb.1: @ %entry
2347 ; SOFT-NEXT: cmp r1, #0
2348 ; SOFT-NEXT: bpl .LBB30_10
2349 ; SOFT-NEXT: .LBB30_2: @ %entry
2350 ; SOFT-NEXT: cmp r1, #0
2351 ; SOFT-NEXT: bne .LBB30_11
2352 ; SOFT-NEXT: .LBB30_3: @ %entry
2353 ; SOFT-NEXT: cmp r1, #0
2354 ; SOFT-NEXT: bmi .LBB30_5
2355 ; SOFT-NEXT: .LBB30_4: @ %entry
2356 ; SOFT-NEXT: movs r1, #0
2357 ; SOFT-NEXT: .LBB30_5: @ %entry
2358 ; SOFT-NEXT: movs r2, #1
2359 ; SOFT-NEXT: lsls r3, r2, #31
2360 ; SOFT-NEXT: cmp r1, #0
2361 ; SOFT-NEXT: mov r2, r0
2362 ; SOFT-NEXT: blt .LBB30_12
2363 ; SOFT-NEXT: @ %bb.6: @ %entry
2364 ; SOFT-NEXT: cmp r0, r3
2365 ; SOFT-NEXT: bls .LBB30_13
2366 ; SOFT-NEXT: .LBB30_7: @ %entry
2367 ; SOFT-NEXT: adds r1, r1, #1
2368 ; SOFT-NEXT: bne .LBB30_14
2369 ; SOFT-NEXT: .LBB30_8: @ %entry
2370 ; SOFT-NEXT: pop {r7, pc}
2371 ; SOFT-NEXT: .LBB30_9: @ %entry
2372 ; SOFT-NEXT: mov r0, r3
2373 ; SOFT-NEXT: cmp r1, #0
2374 ; SOFT-NEXT: bmi .LBB30_2
2375 ; SOFT-NEXT: .LBB30_10: @ %entry
2376 ; SOFT-NEXT: mov r2, r3
2377 ; SOFT-NEXT: cmp r1, #0
2378 ; SOFT-NEXT: beq .LBB30_3
2379 ; SOFT-NEXT: .LBB30_11: @ %entry
2380 ; SOFT-NEXT: mov r0, r2
2381 ; SOFT-NEXT: cmp r1, #0
2382 ; SOFT-NEXT: bpl .LBB30_4
2383 ; SOFT-NEXT: b .LBB30_5
2384 ; SOFT-NEXT: .LBB30_12: @ %entry
2385 ; SOFT-NEXT: mov r2, r3
2386 ; SOFT-NEXT: cmp r0, r3
2387 ; SOFT-NEXT: bhi .LBB30_7
2388 ; SOFT-NEXT: .LBB30_13: @ %entry
2389 ; SOFT-NEXT: mov r0, r3
2390 ; SOFT-NEXT: adds r1, r1, #1
2391 ; SOFT-NEXT: beq .LBB30_8
2392 ; SOFT-NEXT: .LBB30_14: @ %entry
2393 ; SOFT-NEXT: mov r0, r2
2394 ; SOFT-NEXT: pop {r7, pc}
2395 ; SOFT-NEXT: .p2align 2
2396 ; SOFT-NEXT: @ %bb.15:
2397 ; SOFT-NEXT: .LCPI30_0:
2398 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
2414 ; SOFT-LABEL: utest_f32i32_mm:
2415 ; SOFT: @ %bb.0: @ %entry
2416 ; SOFT-NEXT: .save {r7, lr}
2417 ; SOFT-NEXT: push {r7, lr}
2418 ; SOFT-NEXT: bl __aeabi_f2ulz
2419 ; SOFT-NEXT: cmp r1, #0
2420 ; SOFT-NEXT: beq .LBB31_2
2421 ; SOFT-NEXT: @ %bb.1: @ %entry
2422 ; SOFT-NEXT: movs r0, #0
2423 ; SOFT-NEXT: mvns r0, r0
2424 ; SOFT-NEXT: .LBB31_2: @ %entry
2425 ; SOFT-NEXT: pop {r7, pc}
2440 ; SOFT-LABEL: ustest_f32i32_mm:
2441 ; SOFT: @ %bb.0: @ %entry
2442 ; SOFT-NEXT: .save {r4, lr}
2443 ; SOFT-NEXT: push {r4, lr}
2444 ; SOFT-NEXT: bl __aeabi_f2lz
2445 ; SOFT-NEXT: movs r2, #0
2446 ; SOFT-NEXT: cmp r1, #0
2447 ; SOFT-NEXT: mov r3, r1
2448 ; SOFT-NEXT: bmi .LBB32_2
2449 ; SOFT-NEXT: @ %bb.1: @ %entry
2450 ; SOFT-NEXT: mov r3, r2
2451 ; SOFT-NEXT: .LBB32_2: @ %entry
2452 ; SOFT-NEXT: cmp r1, #0
2453 ; SOFT-NEXT: mov r4, r0
2454 ; SOFT-NEXT: bmi .LBB32_4
2455 ; SOFT-NEXT: @ %bb.3: @ %entry
2456 ; SOFT-NEXT: mvns r4, r2
2457 ; SOFT-NEXT: .LBB32_4: @ %entry
2458 ; SOFT-NEXT: cmp r1, #0
2459 ; SOFT-NEXT: beq .LBB32_6
2460 ; SOFT-NEXT: @ %bb.5: @ %entry
2461 ; SOFT-NEXT: mov r0, r4
2462 ; SOFT-NEXT: .LBB32_6: @ %entry
2463 ; SOFT-NEXT: cmp r3, #0
2464 ; SOFT-NEXT: mov r1, r0
2465 ; SOFT-NEXT: ble .LBB32_9
2466 ; SOFT-NEXT: @ %bb.7: @ %entry
2467 ; SOFT-NEXT: cmp r3, #0
2468 ; SOFT-NEXT: bne .LBB32_10
2469 ; SOFT-NEXT: .LBB32_8: @ %entry
2470 ; SOFT-NEXT: pop {r4, pc}
2471 ; SOFT-NEXT: .LBB32_9: @ %entry
2472 ; SOFT-NEXT: mov r1, r2
2473 ; SOFT-NEXT: cmp r3, #0
2474 ; SOFT-NEXT: beq .LBB32_8
2475 ; SOFT-NEXT: .LBB32_10: @ %entry
2476 ; SOFT-NEXT: mov r0, r1
2477 ; SOFT-NEXT: pop {r4, pc}
2493 ; SOFT-LABEL: stest_f16i32_mm:
2494 ; SOFT: @ %bb.0: @ %entry
2495 ; SOFT-NEXT: .save {r7, lr}
2496 ; SOFT-NEXT: push {r7, lr}
2497 ; SOFT-NEXT: uxth r0, r0
2498 ; SOFT-NEXT: bl __aeabi_h2f
2499 ; SOFT-NEXT: bl __aeabi_f2lz
2500 ; SOFT-NEXT: mov r2, r0
2501 ; SOFT-NEXT: ldr r3, .LCPI33_0
2502 ; SOFT-NEXT: cmp r0, r3
2503 ; SOFT-NEXT: bhs .LBB33_9
2504 ; SOFT-NEXT: @ %bb.1: @ %entry
2505 ; SOFT-NEXT: cmp r1, #0
2506 ; SOFT-NEXT: bpl .LBB33_10
2507 ; SOFT-NEXT: .LBB33_2: @ %entry
2508 ; SOFT-NEXT: cmp r1, #0
2509 ; SOFT-NEXT: bne .LBB33_11
2510 ; SOFT-NEXT: .LBB33_3: @ %entry
2511 ; SOFT-NEXT: cmp r1, #0
2512 ; SOFT-NEXT: bmi .LBB33_5
2513 ; SOFT-NEXT: .LBB33_4: @ %entry
2514 ; SOFT-NEXT: movs r1, #0
2515 ; SOFT-NEXT: .LBB33_5: @ %entry
2516 ; SOFT-NEXT: movs r2, #1
2517 ; SOFT-NEXT: lsls r3, r2, #31
2518 ; SOFT-NEXT: cmp r1, #0
2519 ; SOFT-NEXT: mov r2, r0
2520 ; SOFT-NEXT: blt .LBB33_12
2521 ; SOFT-NEXT: @ %bb.6: @ %entry
2522 ; SOFT-NEXT: cmp r0, r3
2523 ; SOFT-NEXT: bls .LBB33_13
2524 ; SOFT-NEXT: .LBB33_7: @ %entry
2525 ; SOFT-NEXT: adds r1, r1, #1
2526 ; SOFT-NEXT: bne .LBB33_14
2527 ; SOFT-NEXT: .LBB33_8: @ %entry
2528 ; SOFT-NEXT: pop {r7, pc}
2529 ; SOFT-NEXT: .LBB33_9: @ %entry
2530 ; SOFT-NEXT: mov r0, r3
2531 ; SOFT-NEXT: cmp r1, #0
2532 ; SOFT-NEXT: bmi .LBB33_2
2533 ; SOFT-NEXT: .LBB33_10: @ %entry
2534 ; SOFT-NEXT: mov r2, r3
2535 ; SOFT-NEXT: cmp r1, #0
2536 ; SOFT-NEXT: beq .LBB33_3
2537 ; SOFT-NEXT: .LBB33_11: @ %entry
2538 ; SOFT-NEXT: mov r0, r2
2539 ; SOFT-NEXT: cmp r1, #0
2540 ; SOFT-NEXT: bpl .LBB33_4
2541 ; SOFT-NEXT: b .LBB33_5
2542 ; SOFT-NEXT: .LBB33_12: @ %entry
2543 ; SOFT-NEXT: mov r2, r3
2544 ; SOFT-NEXT: cmp r0, r3
2545 ; SOFT-NEXT: bhi .LBB33_7
2546 ; SOFT-NEXT: .LBB33_13: @ %entry
2547 ; SOFT-NEXT: mov r0, r3
2548 ; SOFT-NEXT: adds r1, r1, #1
2549 ; SOFT-NEXT: beq .LBB33_8
2550 ; SOFT-NEXT: .LBB33_14: @ %entry
2551 ; SOFT-NEXT: mov r0, r2
2552 ; SOFT-NEXT: pop {r7, pc}
2553 ; SOFT-NEXT: .p2align 2
2554 ; SOFT-NEXT: @ %bb.15:
2555 ; SOFT-NEXT: .LCPI33_0:
2556 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
2583 ; SOFT-LABEL: utesth_f16i32_mm:
2584 ; SOFT: @ %bb.0: @ %entry
2585 ; SOFT-NEXT: .save {r7, lr}
2586 ; SOFT-NEXT: push {r7, lr}
2587 ; SOFT-NEXT: uxth r0, r0
2588 ; SOFT-NEXT: bl __aeabi_h2f
2589 ; SOFT-NEXT: bl __aeabi_f2ulz
2590 ; SOFT-NEXT: cmp r1, #0
2591 ; SOFT-NEXT: beq .LBB34_2
2592 ; SOFT-NEXT: @ %bb.1: @ %entry
2593 ; SOFT-NEXT: movs r0, #0
2594 ; SOFT-NEXT: mvns r0, r0
2595 ; SOFT-NEXT: .LBB34_2: @ %entry
2596 ; SOFT-NEXT: pop {r7, pc}
2622 ; SOFT-LABEL: ustest_f16i32_mm:
2623 ; SOFT: @ %bb.0: @ %entry
2624 ; SOFT-NEXT: .save {r4, lr}
2625 ; SOFT-NEXT: push {r4, lr}
2626 ; SOFT-NEXT: uxth r0, r0
2627 ; SOFT-NEXT: bl __aeabi_h2f
2628 ; SOFT-NEXT: bl __aeabi_f2lz
2629 ; SOFT-NEXT: movs r2, #0
2630 ; SOFT-NEXT: cmp r1, #0
2631 ; SOFT-NEXT: mov r3, r1
2632 ; SOFT-NEXT: bmi .LBB35_2
2633 ; SOFT-NEXT: @ %bb.1: @ %entry
2634 ; SOFT-NEXT: mov r3, r2
2635 ; SOFT-NEXT: .LBB35_2: @ %entry
2636 ; SOFT-NEXT: cmp r1, #0
2637 ; SOFT-NEXT: mov r4, r0
2638 ; SOFT-NEXT: bmi .LBB35_4
2639 ; SOFT-NEXT: @ %bb.3: @ %entry
2640 ; SOFT-NEXT: mvns r4, r2
2641 ; SOFT-NEXT: .LBB35_4: @ %entry
2642 ; SOFT-NEXT: cmp r1, #0
2643 ; SOFT-NEXT: beq .LBB35_6
2644 ; SOFT-NEXT: @ %bb.5: @ %entry
2645 ; SOFT-NEXT: mov r0, r4
2646 ; SOFT-NEXT: .LBB35_6: @ %entry
2647 ; SOFT-NEXT: cmp r3, #0
2648 ; SOFT-NEXT: mov r1, r0
2649 ; SOFT-NEXT: ble .LBB35_9
2650 ; SOFT-NEXT: @ %bb.7: @ %entry
2651 ; SOFT-NEXT: cmp r3, #0
2652 ; SOFT-NEXT: bne .LBB35_10
2653 ; SOFT-NEXT: .LBB35_8: @ %entry
2654 ; SOFT-NEXT: pop {r4, pc}
2655 ; SOFT-NEXT: .LBB35_9: @ %entry
2656 ; SOFT-NEXT: mov r1, r2
2657 ; SOFT-NEXT: cmp r3, #0
2658 ; SOFT-NEXT: beq .LBB35_8
2659 ; SOFT-NEXT: .LBB35_10: @ %entry
2660 ; SOFT-NEXT: mov r0, r1
2661 ; SOFT-NEXT: pop {r4, pc}
2690 ; SOFT-LABEL: stest_f64i16_mm:
2691 ; SOFT: @ %bb.0: @ %entry
2692 ; SOFT-NEXT: .save {r7, lr}
2693 ; SOFT-NEXT: push {r7, lr}
2694 ; SOFT-NEXT: bl __aeabi_d2iz
2695 ; SOFT-NEXT: ldr r1, .LCPI36_0
2696 ; SOFT-NEXT: cmp r0, r1
2697 ; SOFT-NEXT: blt .LBB36_2
2698 ; SOFT-NEXT: @ %bb.1: @ %entry
2699 ; SOFT-NEXT: mov r0, r1
2700 ; SOFT-NEXT: .LBB36_2: @ %entry
2701 ; SOFT-NEXT: ldr r1, .LCPI36_1
2702 ; SOFT-NEXT: cmp r0, r1
2703 ; SOFT-NEXT: bgt .LBB36_4
2704 ; SOFT-NEXT: @ %bb.3: @ %entry
2705 ; SOFT-NEXT: mov r0, r1
2706 ; SOFT-NEXT: .LBB36_4: @ %entry
2707 ; SOFT-NEXT: pop {r7, pc}
2708 ; SOFT-NEXT: .p2align 2
2709 ; SOFT-NEXT: @ %bb.5:
2710 ; SOFT-NEXT: .LCPI36_0:
2711 ; SOFT-NEXT: .long 32767 @ 0x7fff
2712 ; SOFT-NEXT: .LCPI36_1:
2713 ; SOFT-NEXT: .long 4294934528 @ 0xffff8000
2739 ; SOFT-LABEL: utest_f64i16_mm:
2740 ; SOFT: @ %bb.0: @ %entry
2741 ; SOFT-NEXT: .save {r7, lr}
2742 ; SOFT-NEXT: push {r7, lr}
2743 ; SOFT-NEXT: bl __aeabi_d2uiz
2744 ; SOFT-NEXT: ldr r1, .LCPI37_0
2745 ; SOFT-NEXT: cmp r0, r1
2746 ; SOFT-NEXT: blo .LBB37_2
2747 ; SOFT-NEXT: @ %bb.1: @ %entry
2748 ; SOFT-NEXT: mov r0, r1
2749 ; SOFT-NEXT: .LBB37_2: @ %entry
2750 ; SOFT-NEXT: pop {r7, pc}
2751 ; SOFT-NEXT: .p2align 2
2752 ; SOFT-NEXT: @ %bb.3:
2753 ; SOFT-NEXT: .LCPI37_0:
2754 ; SOFT-NEXT: .long 65535 @ 0xffff
2784 ; SOFT-LABEL: ustest_f64i16_mm:
2785 ; SOFT: @ %bb.0: @ %entry
2786 ; SOFT-NEXT: .save {r7, lr}
2787 ; SOFT-NEXT: push {r7, lr}
2788 ; SOFT-NEXT: bl __aeabi_d2iz
2789 ; SOFT-NEXT: ldr r1, .LCPI38_0
2790 ; SOFT-NEXT: cmp r0, r1
2791 ; SOFT-NEXT: blt .LBB38_2
2792 ; SOFT-NEXT: @ %bb.1: @ %entry
2793 ; SOFT-NEXT: mov r0, r1
2794 ; SOFT-NEXT: .LBB38_2: @ %entry
2795 ; SOFT-NEXT: asrs r1, r0, #31
2796 ; SOFT-NEXT: bics r0, r1
2797 ; SOFT-NEXT: pop {r7, pc}
2798 ; SOFT-NEXT: .p2align 2
2799 ; SOFT-NEXT: @ %bb.3:
2800 ; SOFT-NEXT: .LCPI38_0:
2801 ; SOFT-NEXT: .long 65535 @ 0xffff
2827 ; SOFT-LABEL: stest_f32i16_mm:
2828 ; SOFT: @ %bb.0: @ %entry
2829 ; SOFT-NEXT: .save {r7, lr}
2830 ; SOFT-NEXT: push {r7, lr}
2831 ; SOFT-NEXT: bl __aeabi_f2iz
2832 ; SOFT-NEXT: ldr r1, .LCPI39_0
2833 ; SOFT-NEXT: cmp r0, r1
2834 ; SOFT-NEXT: blt .LBB39_2
2835 ; SOFT-NEXT: @ %bb.1: @ %entry
2836 ; SOFT-NEXT: mov r0, r1
2837 ; SOFT-NEXT: .LBB39_2: @ %entry
2838 ; SOFT-NEXT: ldr r1, .LCPI39_1
2839 ; SOFT-NEXT: cmp r0, r1
2840 ; SOFT-NEXT: bgt .LBB39_4
2841 ; SOFT-NEXT: @ %bb.3: @ %entry
2842 ; SOFT-NEXT: mov r0, r1
2843 ; SOFT-NEXT: .LBB39_4: @ %entry
2844 ; SOFT-NEXT: pop {r7, pc}
2845 ; SOFT-NEXT: .p2align 2
2846 ; SOFT-NEXT: @ %bb.5:
2847 ; SOFT-NEXT: .LCPI39_0:
2848 ; SOFT-NEXT: .long 32767 @ 0x7fff
2849 ; SOFT-NEXT: .LCPI39_1:
2850 ; SOFT-NEXT: .long 4294934528 @ 0xffff8000
2867 ; SOFT-LABEL: utest_f32i16_mm:
2868 ; SOFT: @ %bb.0: @ %entry
2869 ; SOFT-NEXT: .save {r7, lr}
2870 ; SOFT-NEXT: push {r7, lr}
2871 ; SOFT-NEXT: bl __aeabi_f2uiz
2872 ; SOFT-NEXT: ldr r1, .LCPI40_0
2873 ; SOFT-NEXT: cmp r0, r1
2874 ; SOFT-NEXT: blo .LBB40_2
2875 ; SOFT-NEXT: @ %bb.1: @ %entry
2876 ; SOFT-NEXT: mov r0, r1
2877 ; SOFT-NEXT: .LBB40_2: @ %entry
2878 ; SOFT-NEXT: pop {r7, pc}
2879 ; SOFT-NEXT: .p2align 2
2880 ; SOFT-NEXT: @ %bb.3:
2881 ; SOFT-NEXT: .LCPI40_0:
2882 ; SOFT-NEXT: .long 65535 @ 0xffff
2910 ; SOFT-LABEL: ustest_f32i16_mm:
2911 ; SOFT: @ %bb.0: @ %entry
2912 ; SOFT-NEXT: .save {r7, lr}
2913 ; SOFT-NEXT: push {r7, lr}
2914 ; SOFT-NEXT: bl __aeabi_f2iz
2915 ; SOFT-NEXT: ldr r1, .LCPI41_0
2916 ; SOFT-NEXT: cmp r0, r1
2917 ; SOFT-NEXT: blt .LBB41_2
2918 ; SOFT-NEXT: @ %bb.1: @ %entry
2919 ; SOFT-NEXT: mov r0, r1
2920 ; SOFT-NEXT: .LBB41_2: @ %entry
2921 ; SOFT-NEXT: asrs r1, r0, #31
2922 ; SOFT-NEXT: bics r0, r1
2923 ; SOFT-NEXT: pop {r7, pc}
2924 ; SOFT-NEXT: .p2align 2
2925 ; SOFT-NEXT: @ %bb.3:
2926 ; SOFT-NEXT: .LCPI41_0:
2927 ; SOFT-NEXT: .long 65535 @ 0xffff
2944 ; SOFT-LABEL: stest_f16i16_mm:
2945 ; SOFT: @ %bb.0: @ %entry
2946 ; SOFT-NEXT: .save {r7, lr}
2947 ; SOFT-NEXT: push {r7, lr}
2948 ; SOFT-NEXT: uxth r0, r0
2949 ; SOFT-NEXT: bl __aeabi_h2f
2950 ; SOFT-NEXT: bl __aeabi_f2iz
2951 ; SOFT-NEXT: ldr r1, .LCPI42_0
2952 ; SOFT-NEXT: cmp r0, r1
2953 ; SOFT-NEXT: blt .LBB42_2
2954 ; SOFT-NEXT: @ %bb.1: @ %entry
2955 ; SOFT-NEXT: mov r0, r1
2956 ; SOFT-NEXT: .LBB42_2: @ %entry
2957 ; SOFT-NEXT: ldr r1, .LCPI42_1
2958 ; SOFT-NEXT: cmp r0, r1
2959 ; SOFT-NEXT: bgt .LBB42_4
2960 ; SOFT-NEXT: @ %bb.3: @ %entry
2961 ; SOFT-NEXT: mov r0, r1
2962 ; SOFT-NEXT: .LBB42_4: @ %entry
2963 ; SOFT-NEXT: pop {r7, pc}
2964 ; SOFT-NEXT: .p2align 2
2965 ; SOFT-NEXT: @ %bb.5:
2966 ; SOFT-NEXT: .LCPI42_0:
2967 ; SOFT-NEXT: .long 32767 @ 0x7fff
2968 ; SOFT-NEXT: .LCPI42_1:
2969 ; SOFT-NEXT: .long 4294934528 @ 0xffff8000
2998 ; SOFT-LABEL: utesth_f16i16_mm:
2999 ; SOFT: @ %bb.0: @ %entry
3000 ; SOFT-NEXT: .save {r7, lr}
3001 ; SOFT-NEXT: push {r7, lr}
3002 ; SOFT-NEXT: uxth r0, r0
3003 ; SOFT-NEXT: bl __aeabi_h2f
3004 ; SOFT-NEXT: bl __aeabi_f2uiz
3005 ; SOFT-NEXT: ldr r1, .LCPI43_0
3006 ; SOFT-NEXT: cmp r0, r1
3007 ; SOFT-NEXT: blo .LBB43_2
3008 ; SOFT-NEXT: @ %bb.1: @ %entry
3009 ; SOFT-NEXT: mov r0, r1
3010 ; SOFT-NEXT: .LBB43_2: @ %entry
3011 ; SOFT-NEXT: pop {r7, pc}
3012 ; SOFT-NEXT: .p2align 2
3013 ; SOFT-NEXT: @ %bb.3:
3014 ; SOFT-NEXT: .LCPI43_0:
3015 ; SOFT-NEXT: .long 65535 @ 0xffff
3048 ; SOFT-LABEL: ustest_f16i16_mm:
3049 ; SOFT: @ %bb.0: @ %entry
3050 ; SOFT-NEXT: .save {r7, lr}
3051 ; SOFT-NEXT: push {r7, lr}
3052 ; SOFT-NEXT: uxth r0, r0
3053 ; SOFT-NEXT: bl __aeabi_h2f
3054 ; SOFT-NEXT: bl __aeabi_f2iz
3055 ; SOFT-NEXT: ldr r1, .LCPI44_0
3056 ; SOFT-NEXT: cmp r0, r1
3057 ; SOFT-NEXT: blt .LBB44_2
3058 ; SOFT-NEXT: @ %bb.1: @ %entry
3059 ; SOFT-NEXT: mov r0, r1
3060 ; SOFT-NEXT: .LBB44_2: @ %entry
3061 ; SOFT-NEXT: asrs r1, r0, #31
3062 ; SOFT-NEXT: bics r0, r1
3063 ; SOFT-NEXT: pop {r7, pc}
3064 ; SOFT-NEXT: .p2align 2
3065 ; SOFT-NEXT: @ %bb.3:
3066 ; SOFT-NEXT: .LCPI44_0:
3067 ; SOFT-NEXT: .long 65535 @ 0xffff
3098 ; SOFT-LABEL: stest_f64i64_mm:
3099 ; SOFT: @ %bb.0: @ %entry
3100 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
3101 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
3102 ; SOFT-NEXT: .pad #12
3103 ; SOFT-NEXT: sub sp, #12
3104 ; SOFT-NEXT: bl __fixdfti
3105 ; SOFT-NEXT: mov r6, r0
3106 ; SOFT-NEXT: mov r4, r1
3107 ; SOFT-NEXT: ldr r5, .LCPI45_0
3108 ; SOFT-NEXT: cmp r1, r5
3109 ; SOFT-NEXT: blo .LBB45_2
3110 ; SOFT-NEXT: @ %bb.1: @ %entry
3111 ; SOFT-NEXT: mov r1, r5
3112 ; SOFT-NEXT: .LBB45_2: @ %entry
3113 ; SOFT-NEXT: cmp r3, #0
3114 ; SOFT-NEXT: mov r0, r4
3115 ; SOFT-NEXT: bmi .LBB45_4
3116 ; SOFT-NEXT: @ %bb.3: @ %entry
3117 ; SOFT-NEXT: mov r0, r5
3118 ; SOFT-NEXT: .LBB45_4: @ %entry
3119 ; SOFT-NEXT: str r2, [sp, #4] @ 4-byte Spill
3120 ; SOFT-NEXT: mov r7, r2
3121 ; SOFT-NEXT: orrs r7, r3
3122 ; SOFT-NEXT: beq .LBB45_6
3123 ; SOFT-NEXT: @ %bb.5: @ %entry
3124 ; SOFT-NEXT: mov r1, r0
3125 ; SOFT-NEXT: .LBB45_6: @ %entry
3126 ; SOFT-NEXT: movs r0, #0
3127 ; SOFT-NEXT: str r0, [sp, #8] @ 4-byte Spill
3128 ; SOFT-NEXT: mvns r2, r0
3129 ; SOFT-NEXT: cmp r4, r5
3130 ; SOFT-NEXT: mov r0, r6
3131 ; SOFT-NEXT: blo .LBB45_8
3132 ; SOFT-NEXT: @ %bb.7: @ %entry
3133 ; SOFT-NEXT: mov r0, r2
3134 ; SOFT-NEXT: .LBB45_8: @ %entry
3135 ; SOFT-NEXT: cmp r4, r5
3136 ; SOFT-NEXT: mov r4, r6
3137 ; SOFT-NEXT: bne .LBB45_26
3138 ; SOFT-NEXT: @ %bb.9: @ %entry
3139 ; SOFT-NEXT: cmp r3, #0
3140 ; SOFT-NEXT: bpl .LBB45_27
3141 ; SOFT-NEXT: .LBB45_10: @ %entry
3142 ; SOFT-NEXT: cmp r7, #0
3143 ; SOFT-NEXT: beq .LBB45_12
3144 ; SOFT-NEXT: .LBB45_11: @ %entry
3145 ; SOFT-NEXT: mov r4, r6
3146 ; SOFT-NEXT: .LBB45_12: @ %entry
3147 ; SOFT-NEXT: movs r0, #1
3148 ; SOFT-NEXT: lsls r5, r0, #31
3149 ; SOFT-NEXT: cmp r1, r5
3150 ; SOFT-NEXT: mov r2, r4
3151 ; SOFT-NEXT: ldr r6, [sp, #8] @ 4-byte Reload
3152 ; SOFT-NEXT: bhi .LBB45_14
3153 ; SOFT-NEXT: @ %bb.13: @ %entry
3154 ; SOFT-NEXT: mov r2, r6
3155 ; SOFT-NEXT: .LBB45_14: @ %entry
3156 ; SOFT-NEXT: cmp r1, r5
3157 ; SOFT-NEXT: mov r0, r4
3158 ; SOFT-NEXT: beq .LBB45_16
3159 ; SOFT-NEXT: @ %bb.15: @ %entry
3160 ; SOFT-NEXT: mov r0, r2
3161 ; SOFT-NEXT: .LBB45_16: @ %entry
3162 ; SOFT-NEXT: cmp r3, #0
3163 ; SOFT-NEXT: mov r7, r3
3164 ; SOFT-NEXT: bpl .LBB45_28
3165 ; SOFT-NEXT: @ %bb.17: @ %entry
3166 ; SOFT-NEXT: cmp r7, #0
3167 ; SOFT-NEXT: blt .LBB45_29
3168 ; SOFT-NEXT: .LBB45_18: @ %entry
3169 ; SOFT-NEXT: cmp r3, #0
3170 ; SOFT-NEXT: beq .LBB45_20
3171 ; SOFT-NEXT: .LBB45_19:
3172 ; SOFT-NEXT: asrs r3, r3, #31
3173 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
3174 ; SOFT-NEXT: ands r3, r2
3175 ; SOFT-NEXT: .LBB45_20: @ %entry
3176 ; SOFT-NEXT: ands r3, r7
3177 ; SOFT-NEXT: adds r2, r3, #1
3178 ; SOFT-NEXT: beq .LBB45_22
3179 ; SOFT-NEXT: @ %bb.21: @ %entry
3180 ; SOFT-NEXT: mov r0, r4
3181 ; SOFT-NEXT: .LBB45_22: @ %entry
3182 ; SOFT-NEXT: cmp r7, #0
3183 ; SOFT-NEXT: mov r3, r1
3184 ; SOFT-NEXT: blt .LBB45_30
3185 ; SOFT-NEXT: @ %bb.23: @ %entry
3186 ; SOFT-NEXT: cmp r1, r5
3187 ; SOFT-NEXT: bls .LBB45_31
3188 ; SOFT-NEXT: .LBB45_24: @ %entry
3189 ; SOFT-NEXT: cmp r2, #0
3190 ; SOFT-NEXT: bne .LBB45_32
3191 ; SOFT-NEXT: .LBB45_25: @ %entry
3192 ; SOFT-NEXT: add sp, #12
3193 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
3194 ; SOFT-NEXT: .LBB45_26: @ %entry
3195 ; SOFT-NEXT: mov r4, r0
3196 ; SOFT-NEXT: cmp r3, #0
3197 ; SOFT-NEXT: bmi .LBB45_10
3198 ; SOFT-NEXT: .LBB45_27: @ %entry
3199 ; SOFT-NEXT: mov r6, r2
3200 ; SOFT-NEXT: cmp r7, #0
3201 ; SOFT-NEXT: bne .LBB45_11
3202 ; SOFT-NEXT: b .LBB45_12
3203 ; SOFT-NEXT: .LBB45_28: @ %entry
3204 ; SOFT-NEXT: mov r7, r6
3205 ; SOFT-NEXT: cmp r7, #0
3206 ; SOFT-NEXT: bge .LBB45_18
3207 ; SOFT-NEXT: .LBB45_29: @ %entry
3208 ; SOFT-NEXT: mov r4, r6
3209 ; SOFT-NEXT: cmp r3, #0
3210 ; SOFT-NEXT: bne .LBB45_19
3211 ; SOFT-NEXT: b .LBB45_20
3212 ; SOFT-NEXT: .LBB45_30: @ %entry
3213 ; SOFT-NEXT: mov r3, r5
3214 ; SOFT-NEXT: cmp r1, r5
3215 ; SOFT-NEXT: bhi .LBB45_24
3216 ; SOFT-NEXT: .LBB45_31: @ %entry
3217 ; SOFT-NEXT: mov r1, r5
3218 ; SOFT-NEXT: cmp r2, #0
3219 ; SOFT-NEXT: beq .LBB45_25
3220 ; SOFT-NEXT: .LBB45_32: @ %entry
3221 ; SOFT-NEXT: mov r1, r3
3222 ; SOFT-NEXT: add sp, #12
3223 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
3224 ; SOFT-NEXT: .p2align 2
3225 ; SOFT-NEXT: @ %bb.33:
3226 ; SOFT-NEXT: .LCPI45_0:
3227 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
3354 ; SOFT-LABEL: utest_f64i64_mm:
3355 ; SOFT: @ %bb.0: @ %entry
3356 ; SOFT-NEXT: .save {r4, r5, r6, lr}
3357 ; SOFT-NEXT: push {r4, r5, r6, lr}
3358 ; SOFT-NEXT: bl __fixunsdfti
3359 ; SOFT-NEXT: movs r5, #1
3360 ; SOFT-NEXT: mov r4, r2
3361 ; SOFT-NEXT: eors r4, r5
3362 ; SOFT-NEXT: movs r6, #0
3363 ; SOFT-NEXT: subs r2, r2, #1
3364 ; SOFT-NEXT: mov r2, r3
3365 ; SOFT-NEXT: sbcs r2, r6
3366 ; SOFT-NEXT: blo .LBB46_2
3367 ; SOFT-NEXT: @ %bb.1: @ %entry
3368 ; SOFT-NEXT: mov r5, r6
3369 ; SOFT-NEXT: .LBB46_2: @ %entry
3370 ; SOFT-NEXT: orrs r4, r3
3371 ; SOFT-NEXT: cmp r5, #0
3372 ; SOFT-NEXT: beq .LBB46_7
3373 ; SOFT-NEXT: @ %bb.3: @ %entry
3374 ; SOFT-NEXT: cmp r4, #0
3375 ; SOFT-NEXT: beq .LBB46_8
3376 ; SOFT-NEXT: .LBB46_4: @ %entry
3377 ; SOFT-NEXT: cmp r5, #0
3378 ; SOFT-NEXT: beq .LBB46_9
3379 ; SOFT-NEXT: .LBB46_5: @ %entry
3380 ; SOFT-NEXT: cmp r4, #0
3381 ; SOFT-NEXT: beq .LBB46_10
3382 ; SOFT-NEXT: .LBB46_6: @ %entry
3383 ; SOFT-NEXT: pop {r4, r5, r6, pc}
3384 ; SOFT-NEXT: .LBB46_7: @ %entry
3385 ; SOFT-NEXT: mov r0, r5
3386 ; SOFT-NEXT: cmp r4, #0
3387 ; SOFT-NEXT: bne .LBB46_4
3388 ; SOFT-NEXT: .LBB46_8: @ %entry
3389 ; SOFT-NEXT: mov r0, r4
3390 ; SOFT-NEXT: cmp r5, #0
3391 ; SOFT-NEXT: bne .LBB46_5
3392 ; SOFT-NEXT: .LBB46_9: @ %entry
3393 ; SOFT-NEXT: mov r1, r5
3394 ; SOFT-NEXT: cmp r4, #0
3395 ; SOFT-NEXT: bne .LBB46_6
3396 ; SOFT-NEXT: .LBB46_10: @ %entry
3397 ; SOFT-NEXT: mov r1, r4
3398 ; SOFT-NEXT: pop {r4, r5, r6, pc}
3453 ; SOFT-LABEL: ustest_f64i64_mm:
3454 ; SOFT: @ %bb.0: @ %entry
3455 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
3456 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
3457 ; SOFT-NEXT: .pad #4
3458 ; SOFT-NEXT: sub sp, #4
3459 ; SOFT-NEXT: bl __fixdfti
3460 ; SOFT-NEXT: movs r5, #1
3461 ; SOFT-NEXT: mov r4, r2
3462 ; SOFT-NEXT: eors r4, r5
3463 ; SOFT-NEXT: movs r6, #0
3464 ; SOFT-NEXT: subs r7, r2, #1
3465 ; SOFT-NEXT: mov r7, r3
3466 ; SOFT-NEXT: sbcs r7, r6
3467 ; SOFT-NEXT: mov r7, r5
3468 ; SOFT-NEXT: blt .LBB47_2
3469 ; SOFT-NEXT: @ %bb.1: @ %entry
3470 ; SOFT-NEXT: mov r7, r6
3471 ; SOFT-NEXT: .LBB47_2: @ %entry
3472 ; SOFT-NEXT: orrs r4, r3
3473 ; SOFT-NEXT: cmp r7, #0
3474 ; SOFT-NEXT: beq .LBB47_25
3475 ; SOFT-NEXT: @ %bb.3: @ %entry
3476 ; SOFT-NEXT: cmp r4, #0
3477 ; SOFT-NEXT: beq .LBB47_26
3478 ; SOFT-NEXT: .LBB47_4: @ %entry
3479 ; SOFT-NEXT: cmp r7, #0
3480 ; SOFT-NEXT: beq .LBB47_27
3481 ; SOFT-NEXT: .LBB47_5: @ %entry
3482 ; SOFT-NEXT: cmp r4, #0
3483 ; SOFT-NEXT: bne .LBB47_7
3484 ; SOFT-NEXT: .LBB47_6: @ %entry
3485 ; SOFT-NEXT: mov r1, r4
3486 ; SOFT-NEXT: .LBB47_7: @ %entry
3487 ; SOFT-NEXT: cmp r1, #0
3488 ; SOFT-NEXT: mov r7, r0
3489 ; SOFT-NEXT: bne .LBB47_9
3490 ; SOFT-NEXT: @ %bb.8: @ %entry
3491 ; SOFT-NEXT: mov r7, r1
3492 ; SOFT-NEXT: .LBB47_9: @ %entry
3493 ; SOFT-NEXT: cmp r1, #0
3494 ; SOFT-NEXT: mov r4, r0
3495 ; SOFT-NEXT: beq .LBB47_11
3496 ; SOFT-NEXT: @ %bb.10: @ %entry
3497 ; SOFT-NEXT: mov r4, r7
3498 ; SOFT-NEXT: .LBB47_11: @ %entry
3499 ; SOFT-NEXT: cmp r2, #1
3500 ; SOFT-NEXT: mov r7, r2
3501 ; SOFT-NEXT: bhs .LBB47_28
3502 ; SOFT-NEXT: @ %bb.12: @ %entry
3503 ; SOFT-NEXT: cmp r3, #0
3504 ; SOFT-NEXT: bpl .LBB47_29
3505 ; SOFT-NEXT: .LBB47_13: @ %entry
3506 ; SOFT-NEXT: cmp r3, #0
3507 ; SOFT-NEXT: bne .LBB47_30
3508 ; SOFT-NEXT: .LBB47_14: @ %entry
3509 ; SOFT-NEXT: cmp r3, #0
3510 ; SOFT-NEXT: bmi .LBB47_16
3511 ; SOFT-NEXT: .LBB47_15: @ %entry
3512 ; SOFT-NEXT: mov r3, r6
3513 ; SOFT-NEXT: .LBB47_16: @ %entry
3514 ; SOFT-NEXT: rsbs r2, r7, #0
3515 ; SOFT-NEXT: mov r2, r6
3516 ; SOFT-NEXT: sbcs r2, r3
3517 ; SOFT-NEXT: bge .LBB47_31
3518 ; SOFT-NEXT: @ %bb.17: @ %entry
3519 ; SOFT-NEXT: cmp r5, #0
3520 ; SOFT-NEXT: beq .LBB47_32
3521 ; SOFT-NEXT: .LBB47_18: @ %entry
3522 ; SOFT-NEXT: orrs r7, r3
3523 ; SOFT-NEXT: beq .LBB47_20
3524 ; SOFT-NEXT: .LBB47_19: @ %entry
3525 ; SOFT-NEXT: mov r4, r0
3526 ; SOFT-NEXT: .LBB47_20: @ %entry
3527 ; SOFT-NEXT: cmp r5, #0
3528 ; SOFT-NEXT: mov r0, r1
3529 ; SOFT-NEXT: bne .LBB47_22
3530 ; SOFT-NEXT: @ %bb.21: @ %entry
3531 ; SOFT-NEXT: mov r0, r5
3532 ; SOFT-NEXT: .LBB47_22: @ %entry
3533 ; SOFT-NEXT: cmp r7, #0
3534 ; SOFT-NEXT: beq .LBB47_24
3535 ; SOFT-NEXT: @ %bb.23: @ %entry
3536 ; SOFT-NEXT: mov r1, r0
3537 ; SOFT-NEXT: .LBB47_24: @ %entry
3538 ; SOFT-NEXT: mov r0, r4
3539 ; SOFT-NEXT: add sp, #4
3540 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
3541 ; SOFT-NEXT: .LBB47_25: @ %entry
3542 ; SOFT-NEXT: mov r0, r7
3543 ; SOFT-NEXT: cmp r4, #0
3544 ; SOFT-NEXT: bne .LBB47_4
3545 ; SOFT-NEXT: .LBB47_26: @ %entry
3546 ; SOFT-NEXT: mov r0, r4
3547 ; SOFT-NEXT: cmp r7, #0
3548 ; SOFT-NEXT: bne .LBB47_5
3549 ; SOFT-NEXT: .LBB47_27: @ %entry
3550 ; SOFT-NEXT: mov r1, r7
3551 ; SOFT-NEXT: cmp r4, #0
3552 ; SOFT-NEXT: beq .LBB47_6
3553 ; SOFT-NEXT: b .LBB47_7
3554 ; SOFT-NEXT: .LBB47_28: @ %entry
3555 ; SOFT-NEXT: mov r7, r5
3556 ; SOFT-NEXT: cmp r3, #0
3557 ; SOFT-NEXT: bmi .LBB47_13
3558 ; SOFT-NEXT: .LBB47_29: @ %entry
3559 ; SOFT-NEXT: mov r2, r5
3560 ; SOFT-NEXT: cmp r3, #0
3561 ; SOFT-NEXT: beq .LBB47_14
3562 ; SOFT-NEXT: .LBB47_30: @ %entry
3563 ; SOFT-NEXT: mov r7, r2
3564 ; SOFT-NEXT: cmp r3, #0
3565 ; SOFT-NEXT: bpl .LBB47_15
3566 ; SOFT-NEXT: b .LBB47_16
3567 ; SOFT-NEXT: .LBB47_31: @ %entry
3568 ; SOFT-NEXT: mov r5, r6
3569 ; SOFT-NEXT: cmp r5, #0
3570 ; SOFT-NEXT: bne .LBB47_18
3571 ; SOFT-NEXT: .LBB47_32: @ %entry
3572 ; SOFT-NEXT: mov r0, r5
3573 ; SOFT-NEXT: orrs r7, r3
3574 ; SOFT-NEXT: bne .LBB47_19
3575 ; SOFT-NEXT: b .LBB47_20
3687 ; SOFT-LABEL: stest_f32i64_mm:
3688 ; SOFT: @ %bb.0: @ %entry
3689 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
3690 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
3691 ; SOFT-NEXT: .pad #20
3692 ; SOFT-NEXT: sub sp, #20
3693 ; SOFT-NEXT: bl __fixsfti
3694 ; SOFT-NEXT: str r0, [sp, #16] @ 4-byte Spill
3695 ; SOFT-NEXT: mov r4, r1
3696 ; SOFT-NEXT: mov r7, r3
3697 ; SOFT-NEXT: ldr r0, .LCPI48_0
3698 ; SOFT-NEXT: cmp r1, r0
3699 ; SOFT-NEXT: mov r5, r1
3700 ; SOFT-NEXT: blo .LBB48_2
3701 ; SOFT-NEXT: @ %bb.1: @ %entry
3702 ; SOFT-NEXT: ldr r5, .LCPI48_0
3703 ; SOFT-NEXT: .LBB48_2: @ %entry
3704 ; SOFT-NEXT: cmp r7, #0
3705 ; SOFT-NEXT: mov r1, r4
3706 ; SOFT-NEXT: bmi .LBB48_4
3707 ; SOFT-NEXT: @ %bb.3: @ %entry
3708 ; SOFT-NEXT: ldr r1, .LCPI48_0
3709 ; SOFT-NEXT: .LBB48_4: @ %entry
3710 ; SOFT-NEXT: str r2, [sp] @ 4-byte Spill
3711 ; SOFT-NEXT: mov r0, r2
3712 ; SOFT-NEXT: orrs r0, r7
3713 ; SOFT-NEXT: str r0, [sp, #4] @ 4-byte Spill
3714 ; SOFT-NEXT: beq .LBB48_6
3715 ; SOFT-NEXT: @ %bb.5: @ %entry
3716 ; SOFT-NEXT: mov r5, r1
3717 ; SOFT-NEXT: .LBB48_6: @ %entry
3718 ; SOFT-NEXT: movs r1, #0
3719 ; SOFT-NEXT: str r1, [sp, #12] @ 4-byte Spill
3720 ; SOFT-NEXT: cmp r7, #0
3721 ; SOFT-NEXT: mov r2, r7
3722 ; SOFT-NEXT: bmi .LBB48_8
3723 ; SOFT-NEXT: @ %bb.7: @ %entry
3724 ; SOFT-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
3725 ; SOFT-NEXT: .LBB48_8: @ %entry
3726 ; SOFT-NEXT: movs r1, #1
3727 ; SOFT-NEXT: lsls r1, r1, #31
3728 ; SOFT-NEXT: cmp r2, #0
3729 ; SOFT-NEXT: mov r6, r5
3730 ; SOFT-NEXT: bge .LBB48_10
3731 ; SOFT-NEXT: @ %bb.9: @ %entry
3732 ; SOFT-NEXT: mov r6, r1
3733 ; SOFT-NEXT: .LBB48_10: @ %entry
3734 ; SOFT-NEXT: cmp r5, r1
3735 ; SOFT-NEXT: mov r3, r5
3736 ; SOFT-NEXT: bhi .LBB48_12
3737 ; SOFT-NEXT: @ %bb.11: @ %entry
3738 ; SOFT-NEXT: mov r3, r1
3739 ; SOFT-NEXT: .LBB48_12: @ %entry
3740 ; SOFT-NEXT: str r3, [sp, #8] @ 4-byte Spill
3741 ; SOFT-NEXT: cmp r7, #0
3742 ; SOFT-NEXT: bne .LBB48_14
3743 ; SOFT-NEXT: @ %bb.13: @ %entry
3744 ; SOFT-NEXT: mov r3, r7
3745 ; SOFT-NEXT: b .LBB48_15
3746 ; SOFT-NEXT: .LBB48_14:
3747 ; SOFT-NEXT: asrs r3, r7, #31
3748 ; SOFT-NEXT: ldr r0, [sp] @ 4-byte Reload
3749 ; SOFT-NEXT: ands r3, r0
3750 ; SOFT-NEXT: .LBB48_15: @ %entry
3751 ; SOFT-NEXT: ands r3, r2
3752 ; SOFT-NEXT: adds r0, r3, #1
3753 ; SOFT-NEXT: str r0, [sp] @ 4-byte Spill
3754 ; SOFT-NEXT: beq .LBB48_17
3755 ; SOFT-NEXT: @ %bb.16: @ %entry
3756 ; SOFT-NEXT: str r6, [sp, #8] @ 4-byte Spill
3757 ; SOFT-NEXT: .LBB48_17: @ %entry
3758 ; SOFT-NEXT: ldr r3, [sp, #12] @ 4-byte Reload
3759 ; SOFT-NEXT: mvns r6, r3
3760 ; SOFT-NEXT: ldr r0, .LCPI48_0
3761 ; SOFT-NEXT: cmp r4, r0
3762 ; SOFT-NEXT: ldr r3, [sp, #16] @ 4-byte Reload
3763 ; SOFT-NEXT: blo .LBB48_19
3764 ; SOFT-NEXT: @ %bb.18: @ %entry
3765 ; SOFT-NEXT: mov r3, r6
3766 ; SOFT-NEXT: .LBB48_19: @ %entry
3767 ; SOFT-NEXT: ldr r0, .LCPI48_0
3768 ; SOFT-NEXT: cmp r4, r0
3769 ; SOFT-NEXT: ldr r4, [sp, #16] @ 4-byte Reload
3770 ; SOFT-NEXT: beq .LBB48_21
3771 ; SOFT-NEXT: @ %bb.20: @ %entry
3772 ; SOFT-NEXT: mov r4, r3
3773 ; SOFT-NEXT: .LBB48_21: @ %entry
3774 ; SOFT-NEXT: cmp r7, #0
3775 ; SOFT-NEXT: bmi .LBB48_23
3776 ; SOFT-NEXT: @ %bb.22: @ %entry
3777 ; SOFT-NEXT: str r6, [sp, #16] @ 4-byte Spill
3778 ; SOFT-NEXT: .LBB48_23: @ %entry
3779 ; SOFT-NEXT: ldr r0, [sp, #4] @ 4-byte Reload
3780 ; SOFT-NEXT: cmp r0, #0
3781 ; SOFT-NEXT: beq .LBB48_25
3782 ; SOFT-NEXT: @ %bb.24: @ %entry
3783 ; SOFT-NEXT: ldr r4, [sp, #16] @ 4-byte Reload
3784 ; SOFT-NEXT: .LBB48_25: @ %entry
3785 ; SOFT-NEXT: cmp r5, r1
3786 ; SOFT-NEXT: mov r3, r4
3787 ; SOFT-NEXT: bhi .LBB48_27
3788 ; SOFT-NEXT: @ %bb.26: @ %entry
3789 ; SOFT-NEXT: ldr r3, [sp, #12] @ 4-byte Reload
3790 ; SOFT-NEXT: .LBB48_27: @ %entry
3791 ; SOFT-NEXT: cmp r5, r1
3792 ; SOFT-NEXT: mov r0, r4
3793 ; SOFT-NEXT: beq .LBB48_29
3794 ; SOFT-NEXT: @ %bb.28: @ %entry
3795 ; SOFT-NEXT: mov r0, r3
3796 ; SOFT-NEXT: .LBB48_29: @ %entry
3797 ; SOFT-NEXT: cmp r2, #0
3798 ; SOFT-NEXT: bge .LBB48_31
3799 ; SOFT-NEXT: @ %bb.30: @ %entry
3800 ; SOFT-NEXT: ldr r4, [sp, #12] @ 4-byte Reload
3801 ; SOFT-NEXT: .LBB48_31: @ %entry
3802 ; SOFT-NEXT: ldr r1, [sp] @ 4-byte Reload
3803 ; SOFT-NEXT: cmp r1, #0
3804 ; SOFT-NEXT: ldr r1, [sp, #8] @ 4-byte Reload
3805 ; SOFT-NEXT: beq .LBB48_33
3806 ; SOFT-NEXT: @ %bb.32: @ %entry
3807 ; SOFT-NEXT: mov r0, r4
3808 ; SOFT-NEXT: .LBB48_33: @ %entry
3809 ; SOFT-NEXT: add sp, #20
3810 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
3811 ; SOFT-NEXT: .p2align 2
3812 ; SOFT-NEXT: @ %bb.34:
3813 ; SOFT-NEXT: .LCPI48_0:
3814 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
3941 ; SOFT-LABEL: utest_f32i64_mm:
3942 ; SOFT: @ %bb.0: @ %entry
3943 ; SOFT-NEXT: .save {r4, r5, r6, lr}
3944 ; SOFT-NEXT: push {r4, r5, r6, lr}
3945 ; SOFT-NEXT: bl __fixunssfti
3946 ; SOFT-NEXT: movs r5, #1
3947 ; SOFT-NEXT: movs r6, #0
3948 ; SOFT-NEXT: subs r4, r2, #1
3949 ; SOFT-NEXT: mov r4, r3
3950 ; SOFT-NEXT: sbcs r4, r6
3951 ; SOFT-NEXT: mov r4, r5
3952 ; SOFT-NEXT: blo .LBB49_2
3953 ; SOFT-NEXT: @ %bb.1: @ %entry
3954 ; SOFT-NEXT: mov r4, r6
3955 ; SOFT-NEXT: .LBB49_2: @ %entry
3956 ; SOFT-NEXT: cmp r4, #0
3957 ; SOFT-NEXT: bne .LBB49_4
3958 ; SOFT-NEXT: @ %bb.3: @ %entry
3959 ; SOFT-NEXT: mov r0, r4
3960 ; SOFT-NEXT: .LBB49_4: @ %entry
3961 ; SOFT-NEXT: eors r2, r5
3962 ; SOFT-NEXT: orrs r2, r3
3963 ; SOFT-NEXT: beq .LBB49_8
3964 ; SOFT-NEXT: @ %bb.5: @ %entry
3965 ; SOFT-NEXT: cmp r4, #0
3966 ; SOFT-NEXT: beq .LBB49_9
3967 ; SOFT-NEXT: .LBB49_6: @ %entry
3968 ; SOFT-NEXT: cmp r2, #0
3969 ; SOFT-NEXT: beq .LBB49_10
3970 ; SOFT-NEXT: .LBB49_7: @ %entry
3971 ; SOFT-NEXT: pop {r4, r5, r6, pc}
3972 ; SOFT-NEXT: .LBB49_8: @ %entry
3973 ; SOFT-NEXT: mov r0, r2
3974 ; SOFT-NEXT: cmp r4, #0
3975 ; SOFT-NEXT: bne .LBB49_6
3976 ; SOFT-NEXT: .LBB49_9: @ %entry
3977 ; SOFT-NEXT: mov r1, r4
3978 ; SOFT-NEXT: cmp r2, #0
3979 ; SOFT-NEXT: bne .LBB49_7
3980 ; SOFT-NEXT: .LBB49_10: @ %entry
3981 ; SOFT-NEXT: mov r1, r2
3982 ; SOFT-NEXT: pop {r4, r5, r6, pc}
4037 ; SOFT-LABEL: ustest_f32i64_mm:
4038 ; SOFT: @ %bb.0: @ %entry
4039 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
4040 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
4041 ; SOFT-NEXT: .pad #4
4042 ; SOFT-NEXT: sub sp, #4
4043 ; SOFT-NEXT: bl __fixsfti
4044 ; SOFT-NEXT: movs r5, #1
4045 ; SOFT-NEXT: movs r6, #0
4046 ; SOFT-NEXT: subs r4, r2, #1
4047 ; SOFT-NEXT: mov r4, r3
4048 ; SOFT-NEXT: sbcs r4, r6
4049 ; SOFT-NEXT: mov r4, r5
4050 ; SOFT-NEXT: blt .LBB50_2
4051 ; SOFT-NEXT: @ %bb.1: @ %entry
4052 ; SOFT-NEXT: mov r4, r6
4053 ; SOFT-NEXT: .LBB50_2: @ %entry
4054 ; SOFT-NEXT: cmp r4, #0
4055 ; SOFT-NEXT: bne .LBB50_4
4056 ; SOFT-NEXT: @ %bb.3: @ %entry
4057 ; SOFT-NEXT: mov r0, r4
4058 ; SOFT-NEXT: .LBB50_4: @ %entry
4059 ; SOFT-NEXT: mov r7, r2
4060 ; SOFT-NEXT: eors r7, r5
4061 ; SOFT-NEXT: orrs r7, r3
4062 ; SOFT-NEXT: beq .LBB50_26
4063 ; SOFT-NEXT: @ %bb.5: @ %entry
4064 ; SOFT-NEXT: cmp r4, #0
4065 ; SOFT-NEXT: beq .LBB50_27
4066 ; SOFT-NEXT: .LBB50_6: @ %entry
4067 ; SOFT-NEXT: cmp r7, #0
4068 ; SOFT-NEXT: bne .LBB50_8
4069 ; SOFT-NEXT: .LBB50_7: @ %entry
4070 ; SOFT-NEXT: mov r1, r7
4071 ; SOFT-NEXT: .LBB50_8: @ %entry
4072 ; SOFT-NEXT: cmp r1, #0
4073 ; SOFT-NEXT: mov r7, r0
4074 ; SOFT-NEXT: bne .LBB50_10
4075 ; SOFT-NEXT: @ %bb.9: @ %entry
4076 ; SOFT-NEXT: mov r7, r1
4077 ; SOFT-NEXT: .LBB50_10: @ %entry
4078 ; SOFT-NEXT: cmp r1, #0
4079 ; SOFT-NEXT: mov r4, r0
4080 ; SOFT-NEXT: beq .LBB50_12
4081 ; SOFT-NEXT: @ %bb.11: @ %entry
4082 ; SOFT-NEXT: mov r4, r7
4083 ; SOFT-NEXT: .LBB50_12: @ %entry
4084 ; SOFT-NEXT: cmp r2, #1
4085 ; SOFT-NEXT: mov r7, r2
4086 ; SOFT-NEXT: bhs .LBB50_28
4087 ; SOFT-NEXT: @ %bb.13: @ %entry
4088 ; SOFT-NEXT: cmp r3, #0
4089 ; SOFT-NEXT: bpl .LBB50_29
4090 ; SOFT-NEXT: .LBB50_14: @ %entry
4091 ; SOFT-NEXT: cmp r3, #0
4092 ; SOFT-NEXT: bne .LBB50_30
4093 ; SOFT-NEXT: .LBB50_15: @ %entry
4094 ; SOFT-NEXT: cmp r3, #0
4095 ; SOFT-NEXT: bmi .LBB50_17
4096 ; SOFT-NEXT: .LBB50_16: @ %entry
4097 ; SOFT-NEXT: mov r3, r6
4098 ; SOFT-NEXT: .LBB50_17: @ %entry
4099 ; SOFT-NEXT: rsbs r2, r7, #0
4100 ; SOFT-NEXT: mov r2, r6
4101 ; SOFT-NEXT: sbcs r2, r3
4102 ; SOFT-NEXT: bge .LBB50_31
4103 ; SOFT-NEXT: @ %bb.18: @ %entry
4104 ; SOFT-NEXT: cmp r5, #0
4105 ; SOFT-NEXT: beq .LBB50_32
4106 ; SOFT-NEXT: .LBB50_19: @ %entry
4107 ; SOFT-NEXT: orrs r7, r3
4108 ; SOFT-NEXT: beq .LBB50_21
4109 ; SOFT-NEXT: .LBB50_20: @ %entry
4110 ; SOFT-NEXT: mov r4, r0
4111 ; SOFT-NEXT: .LBB50_21: @ %entry
4112 ; SOFT-NEXT: cmp r5, #0
4113 ; SOFT-NEXT: mov r0, r1
4114 ; SOFT-NEXT: bne .LBB50_23
4115 ; SOFT-NEXT: @ %bb.22: @ %entry
4116 ; SOFT-NEXT: mov r0, r5
4117 ; SOFT-NEXT: .LBB50_23: @ %entry
4118 ; SOFT-NEXT: cmp r7, #0
4119 ; SOFT-NEXT: beq .LBB50_25
4120 ; SOFT-NEXT: @ %bb.24: @ %entry
4121 ; SOFT-NEXT: mov r1, r0
4122 ; SOFT-NEXT: .LBB50_25: @ %entry
4123 ; SOFT-NEXT: mov r0, r4
4124 ; SOFT-NEXT: add sp, #4
4125 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
4126 ; SOFT-NEXT: .LBB50_26: @ %entry
4127 ; SOFT-NEXT: mov r0, r7
4128 ; SOFT-NEXT: cmp r4, #0
4129 ; SOFT-NEXT: bne .LBB50_6
4130 ; SOFT-NEXT: .LBB50_27: @ %entry
4131 ; SOFT-NEXT: mov r1, r4
4132 ; SOFT-NEXT: cmp r7, #0
4133 ; SOFT-NEXT: beq .LBB50_7
4134 ; SOFT-NEXT: b .LBB50_8
4135 ; SOFT-NEXT: .LBB50_28: @ %entry
4136 ; SOFT-NEXT: mov r7, r5
4137 ; SOFT-NEXT: cmp r3, #0
4138 ; SOFT-NEXT: bmi .LBB50_14
4139 ; SOFT-NEXT: .LBB50_29: @ %entry
4140 ; SOFT-NEXT: mov r2, r5
4141 ; SOFT-NEXT: cmp r3, #0
4142 ; SOFT-NEXT: beq .LBB50_15
4143 ; SOFT-NEXT: .LBB50_30: @ %entry
4144 ; SOFT-NEXT: mov r7, r2
4145 ; SOFT-NEXT: cmp r3, #0
4146 ; SOFT-NEXT: bpl .LBB50_16
4147 ; SOFT-NEXT: b .LBB50_17
4148 ; SOFT-NEXT: .LBB50_31: @ %entry
4149 ; SOFT-NEXT: mov r5, r6
4150 ; SOFT-NEXT: cmp r5, #0
4151 ; SOFT-NEXT: bne .LBB50_19
4152 ; SOFT-NEXT: .LBB50_32: @ %entry
4153 ; SOFT-NEXT: mov r0, r5
4154 ; SOFT-NEXT: orrs r7, r3
4155 ; SOFT-NEXT: bne .LBB50_20
4156 ; SOFT-NEXT: b .LBB50_21
4268 ; SOFT-LABEL: stest_f16i64_mm:
4269 ; SOFT: @ %bb.0: @ %entry
4270 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
4271 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
4272 ; SOFT-NEXT: .pad #20
4273 ; SOFT-NEXT: sub sp, #20
4274 ; SOFT-NEXT: uxth r0, r0
4275 ; SOFT-NEXT: bl __aeabi_h2f
4276 ; SOFT-NEXT: bl __fixsfti
4277 ; SOFT-NEXT: str r0, [sp, #16] @ 4-byte Spill
4278 ; SOFT-NEXT: mov r4, r1
4279 ; SOFT-NEXT: mov r7, r3
4280 ; SOFT-NEXT: ldr r0, .LCPI51_0
4281 ; SOFT-NEXT: cmp r1, r0
4282 ; SOFT-NEXT: mov r5, r1
4283 ; SOFT-NEXT: blo .LBB51_2
4284 ; SOFT-NEXT: @ %bb.1: @ %entry
4285 ; SOFT-NEXT: ldr r5, .LCPI51_0
4286 ; SOFT-NEXT: .LBB51_2: @ %entry
4287 ; SOFT-NEXT: cmp r7, #0
4288 ; SOFT-NEXT: mov r1, r4
4289 ; SOFT-NEXT: bmi .LBB51_4
4290 ; SOFT-NEXT: @ %bb.3: @ %entry
4291 ; SOFT-NEXT: ldr r1, .LCPI51_0
4292 ; SOFT-NEXT: .LBB51_4: @ %entry
4293 ; SOFT-NEXT: str r2, [sp] @ 4-byte Spill
4294 ; SOFT-NEXT: mov r0, r2
4295 ; SOFT-NEXT: orrs r0, r7
4296 ; SOFT-NEXT: str r0, [sp, #4] @ 4-byte Spill
4297 ; SOFT-NEXT: beq .LBB51_6
4298 ; SOFT-NEXT: @ %bb.5: @ %entry
4299 ; SOFT-NEXT: mov r5, r1
4300 ; SOFT-NEXT: .LBB51_6: @ %entry
4301 ; SOFT-NEXT: movs r1, #0
4302 ; SOFT-NEXT: str r1, [sp, #12] @ 4-byte Spill
4303 ; SOFT-NEXT: cmp r7, #0
4304 ; SOFT-NEXT: mov r2, r7
4305 ; SOFT-NEXT: bmi .LBB51_8
4306 ; SOFT-NEXT: @ %bb.7: @ %entry
4307 ; SOFT-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
4308 ; SOFT-NEXT: .LBB51_8: @ %entry
4309 ; SOFT-NEXT: movs r1, #1
4310 ; SOFT-NEXT: lsls r1, r1, #31
4311 ; SOFT-NEXT: cmp r2, #0
4312 ; SOFT-NEXT: mov r6, r5
4313 ; SOFT-NEXT: bge .LBB51_10
4314 ; SOFT-NEXT: @ %bb.9: @ %entry
4315 ; SOFT-NEXT: mov r6, r1
4316 ; SOFT-NEXT: .LBB51_10: @ %entry
4317 ; SOFT-NEXT: cmp r5, r1
4318 ; SOFT-NEXT: mov r3, r5
4319 ; SOFT-NEXT: bhi .LBB51_12
4320 ; SOFT-NEXT: @ %bb.11: @ %entry
4321 ; SOFT-NEXT: mov r3, r1
4322 ; SOFT-NEXT: .LBB51_12: @ %entry
4323 ; SOFT-NEXT: str r3, [sp, #8] @ 4-byte Spill
4324 ; SOFT-NEXT: cmp r7, #0
4325 ; SOFT-NEXT: bne .LBB51_14
4326 ; SOFT-NEXT: @ %bb.13: @ %entry
4327 ; SOFT-NEXT: mov r3, r7
4328 ; SOFT-NEXT: b .LBB51_15
4329 ; SOFT-NEXT: .LBB51_14:
4330 ; SOFT-NEXT: asrs r3, r7, #31
4331 ; SOFT-NEXT: ldr r0, [sp] @ 4-byte Reload
4332 ; SOFT-NEXT: ands r3, r0
4333 ; SOFT-NEXT: .LBB51_15: @ %entry
4334 ; SOFT-NEXT: ands r3, r2
4335 ; SOFT-NEXT: adds r0, r3, #1
4336 ; SOFT-NEXT: str r0, [sp] @ 4-byte Spill
4337 ; SOFT-NEXT: beq .LBB51_17
4338 ; SOFT-NEXT: @ %bb.16: @ %entry
4339 ; SOFT-NEXT: str r6, [sp, #8] @ 4-byte Spill
4340 ; SOFT-NEXT: .LBB51_17: @ %entry
4341 ; SOFT-NEXT: ldr r3, [sp, #12] @ 4-byte Reload
4342 ; SOFT-NEXT: mvns r6, r3
4343 ; SOFT-NEXT: ldr r0, .LCPI51_0
4344 ; SOFT-NEXT: cmp r4, r0
4345 ; SOFT-NEXT: ldr r3, [sp, #16] @ 4-byte Reload
4346 ; SOFT-NEXT: blo .LBB51_19
4347 ; SOFT-NEXT: @ %bb.18: @ %entry
4348 ; SOFT-NEXT: mov r3, r6
4349 ; SOFT-NEXT: .LBB51_19: @ %entry
4350 ; SOFT-NEXT: ldr r0, .LCPI51_0
4351 ; SOFT-NEXT: cmp r4, r0
4352 ; SOFT-NEXT: ldr r4, [sp, #16] @ 4-byte Reload
4353 ; SOFT-NEXT: beq .LBB51_21
4354 ; SOFT-NEXT: @ %bb.20: @ %entry
4355 ; SOFT-NEXT: mov r4, r3
4356 ; SOFT-NEXT: .LBB51_21: @ %entry
4357 ; SOFT-NEXT: cmp r7, #0
4358 ; SOFT-NEXT: bmi .LBB51_23
4359 ; SOFT-NEXT: @ %bb.22: @ %entry
4360 ; SOFT-NEXT: str r6, [sp, #16] @ 4-byte Spill
4361 ; SOFT-NEXT: .LBB51_23: @ %entry
4362 ; SOFT-NEXT: ldr r0, [sp, #4] @ 4-byte Reload
4363 ; SOFT-NEXT: cmp r0, #0
4364 ; SOFT-NEXT: beq .LBB51_25
4365 ; SOFT-NEXT: @ %bb.24: @ %entry
4366 ; SOFT-NEXT: ldr r4, [sp, #16] @ 4-byte Reload
4367 ; SOFT-NEXT: .LBB51_25: @ %entry
4368 ; SOFT-NEXT: cmp r5, r1
4369 ; SOFT-NEXT: mov r3, r4
4370 ; SOFT-NEXT: bhi .LBB51_27
4371 ; SOFT-NEXT: @ %bb.26: @ %entry
4372 ; SOFT-NEXT: ldr r3, [sp, #12] @ 4-byte Reload
4373 ; SOFT-NEXT: .LBB51_27: @ %entry
4374 ; SOFT-NEXT: cmp r5, r1
4375 ; SOFT-NEXT: mov r0, r4
4376 ; SOFT-NEXT: beq .LBB51_29
4377 ; SOFT-NEXT: @ %bb.28: @ %entry
4378 ; SOFT-NEXT: mov r0, r3
4379 ; SOFT-NEXT: .LBB51_29: @ %entry
4380 ; SOFT-NEXT: cmp r2, #0
4381 ; SOFT-NEXT: bge .LBB51_31
4382 ; SOFT-NEXT: @ %bb.30: @ %entry
4383 ; SOFT-NEXT: ldr r4, [sp, #12] @ 4-byte Reload
4384 ; SOFT-NEXT: .LBB51_31: @ %entry
4385 ; SOFT-NEXT: ldr r1, [sp] @ 4-byte Reload
4386 ; SOFT-NEXT: cmp r1, #0
4387 ; SOFT-NEXT: ldr r1, [sp, #8] @ 4-byte Reload
4388 ; SOFT-NEXT: beq .LBB51_33
4389 ; SOFT-NEXT: @ %bb.32: @ %entry
4390 ; SOFT-NEXT: mov r0, r4
4391 ; SOFT-NEXT: .LBB51_33: @ %entry
4392 ; SOFT-NEXT: add sp, #20
4393 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
4394 ; SOFT-NEXT: .p2align 2
4395 ; SOFT-NEXT: @ %bb.34:
4396 ; SOFT-NEXT: .LCPI51_0:
4397 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
4529 ; SOFT-LABEL: utesth_f16i64_mm:
4530 ; SOFT: @ %bb.0: @ %entry
4531 ; SOFT-NEXT: .save {r4, r5, r6, lr}
4532 ; SOFT-NEXT: push {r4, r5, r6, lr}
4533 ; SOFT-NEXT: uxth r0, r0
4534 ; SOFT-NEXT: bl __aeabi_h2f
4535 ; SOFT-NEXT: bl __fixunssfti
4536 ; SOFT-NEXT: movs r5, #1
4537 ; SOFT-NEXT: movs r6, #0
4538 ; SOFT-NEXT: subs r4, r2, #1
4539 ; SOFT-NEXT: mov r4, r3
4540 ; SOFT-NEXT: sbcs r4, r6
4541 ; SOFT-NEXT: mov r4, r5
4542 ; SOFT-NEXT: blo .LBB52_2
4543 ; SOFT-NEXT: @ %bb.1: @ %entry
4544 ; SOFT-NEXT: mov r4, r6
4545 ; SOFT-NEXT: .LBB52_2: @ %entry
4546 ; SOFT-NEXT: cmp r4, #0
4547 ; SOFT-NEXT: bne .LBB52_4
4548 ; SOFT-NEXT: @ %bb.3: @ %entry
4549 ; SOFT-NEXT: mov r0, r4
4550 ; SOFT-NEXT: .LBB52_4: @ %entry
4551 ; SOFT-NEXT: eors r2, r5
4552 ; SOFT-NEXT: orrs r2, r3
4553 ; SOFT-NEXT: beq .LBB52_8
4554 ; SOFT-NEXT: @ %bb.5: @ %entry
4555 ; SOFT-NEXT: cmp r4, #0
4556 ; SOFT-NEXT: beq .LBB52_9
4557 ; SOFT-NEXT: .LBB52_6: @ %entry
4558 ; SOFT-NEXT: cmp r2, #0
4559 ; SOFT-NEXT: beq .LBB52_10
4560 ; SOFT-NEXT: .LBB52_7: @ %entry
4561 ; SOFT-NEXT: pop {r4, r5, r6, pc}
4562 ; SOFT-NEXT: .LBB52_8: @ %entry
4563 ; SOFT-NEXT: mov r0, r2
4564 ; SOFT-NEXT: cmp r4, #0
4565 ; SOFT-NEXT: bne .LBB52_6
4566 ; SOFT-NEXT: .LBB52_9: @ %entry
4567 ; SOFT-NEXT: mov r1, r4
4568 ; SOFT-NEXT: cmp r2, #0
4569 ; SOFT-NEXT: bne .LBB52_7
4570 ; SOFT-NEXT: .LBB52_10: @ %entry
4571 ; SOFT-NEXT: mov r1, r2
4572 ; SOFT-NEXT: pop {r4, r5, r6, pc}
4632 ; SOFT-LABEL: ustest_f16i64_mm:
4633 ; SOFT: @ %bb.0: @ %entry
4634 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
4635 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
4636 ; SOFT-NEXT: .pad #4
4637 ; SOFT-NEXT: sub sp, #4
4638 ; SOFT-NEXT: uxth r0, r0
4639 ; SOFT-NEXT: bl __aeabi_h2f
4640 ; SOFT-NEXT: bl __fixsfti
4641 ; SOFT-NEXT: movs r5, #1
4642 ; SOFT-NEXT: movs r6, #0
4643 ; SOFT-NEXT: subs r4, r2, #1
4644 ; SOFT-NEXT: mov r4, r3
4645 ; SOFT-NEXT: sbcs r4, r6
4646 ; SOFT-NEXT: mov r4, r5
4647 ; SOFT-NEXT: blt .LBB53_2
4648 ; SOFT-NEXT: @ %bb.1: @ %entry
4649 ; SOFT-NEXT: mov r4, r6
4650 ; SOFT-NEXT: .LBB53_2: @ %entry
4651 ; SOFT-NEXT: cmp r4, #0
4652 ; SOFT-NEXT: bne .LBB53_4
4653 ; SOFT-NEXT: @ %bb.3: @ %entry
4654 ; SOFT-NEXT: mov r0, r4
4655 ; SOFT-NEXT: .LBB53_4: @ %entry
4656 ; SOFT-NEXT: mov r7, r2
4657 ; SOFT-NEXT: eors r7, r5
4658 ; SOFT-NEXT: orrs r7, r3
4659 ; SOFT-NEXT: beq .LBB53_26
4660 ; SOFT-NEXT: @ %bb.5: @ %entry
4661 ; SOFT-NEXT: cmp r4, #0
4662 ; SOFT-NEXT: beq .LBB53_27
4663 ; SOFT-NEXT: .LBB53_6: @ %entry
4664 ; SOFT-NEXT: cmp r7, #0
4665 ; SOFT-NEXT: bne .LBB53_8
4666 ; SOFT-NEXT: .LBB53_7: @ %entry
4667 ; SOFT-NEXT: mov r1, r7
4668 ; SOFT-NEXT: .LBB53_8: @ %entry
4669 ; SOFT-NEXT: cmp r1, #0
4670 ; SOFT-NEXT: mov r7, r0
4671 ; SOFT-NEXT: bne .LBB53_10
4672 ; SOFT-NEXT: @ %bb.9: @ %entry
4673 ; SOFT-NEXT: mov r7, r1
4674 ; SOFT-NEXT: .LBB53_10: @ %entry
4675 ; SOFT-NEXT: cmp r1, #0
4676 ; SOFT-NEXT: mov r4, r0
4677 ; SOFT-NEXT: beq .LBB53_12
4678 ; SOFT-NEXT: @ %bb.11: @ %entry
4679 ; SOFT-NEXT: mov r4, r7
4680 ; SOFT-NEXT: .LBB53_12: @ %entry
4681 ; SOFT-NEXT: cmp r2, #1
4682 ; SOFT-NEXT: mov r7, r2
4683 ; SOFT-NEXT: bhs .LBB53_28
4684 ; SOFT-NEXT: @ %bb.13: @ %entry
4685 ; SOFT-NEXT: cmp r3, #0
4686 ; SOFT-NEXT: bpl .LBB53_29
4687 ; SOFT-NEXT: .LBB53_14: @ %entry
4688 ; SOFT-NEXT: cmp r3, #0
4689 ; SOFT-NEXT: bne .LBB53_30
4690 ; SOFT-NEXT: .LBB53_15: @ %entry
4691 ; SOFT-NEXT: cmp r3, #0
4692 ; SOFT-NEXT: bmi .LBB53_17
4693 ; SOFT-NEXT: .LBB53_16: @ %entry
4694 ; SOFT-NEXT: mov r3, r6
4695 ; SOFT-NEXT: .LBB53_17: @ %entry
4696 ; SOFT-NEXT: rsbs r2, r7, #0
4697 ; SOFT-NEXT: mov r2, r6
4698 ; SOFT-NEXT: sbcs r2, r3
4699 ; SOFT-NEXT: bge .LBB53_31
4700 ; SOFT-NEXT: @ %bb.18: @ %entry
4701 ; SOFT-NEXT: cmp r5, #0
4702 ; SOFT-NEXT: beq .LBB53_32
4703 ; SOFT-NEXT: .LBB53_19: @ %entry
4704 ; SOFT-NEXT: orrs r7, r3
4705 ; SOFT-NEXT: beq .LBB53_21
4706 ; SOFT-NEXT: .LBB53_20: @ %entry
4707 ; SOFT-NEXT: mov r4, r0
4708 ; SOFT-NEXT: .LBB53_21: @ %entry
4709 ; SOFT-NEXT: cmp r5, #0
4710 ; SOFT-NEXT: mov r0, r1
4711 ; SOFT-NEXT: bne .LBB53_23
4712 ; SOFT-NEXT: @ %bb.22: @ %entry
4713 ; SOFT-NEXT: mov r0, r5
4714 ; SOFT-NEXT: .LBB53_23: @ %entry
4715 ; SOFT-NEXT: cmp r7, #0
4716 ; SOFT-NEXT: beq .LBB53_25
4717 ; SOFT-NEXT: @ %bb.24: @ %entry
4718 ; SOFT-NEXT: mov r1, r0
4719 ; SOFT-NEXT: .LBB53_25: @ %entry
4720 ; SOFT-NEXT: mov r0, r4
4721 ; SOFT-NEXT: add sp, #4
4722 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
4723 ; SOFT-NEXT: .LBB53_26: @ %entry
4724 ; SOFT-NEXT: mov r0, r7
4725 ; SOFT-NEXT: cmp r4, #0
4726 ; SOFT-NEXT: bne .LBB53_6
4727 ; SOFT-NEXT: .LBB53_27: @ %entry
4728 ; SOFT-NEXT: mov r1, r4
4729 ; SOFT-NEXT: cmp r7, #0
4730 ; SOFT-NEXT: beq .LBB53_7
4731 ; SOFT-NEXT: b .LBB53_8
4732 ; SOFT-NEXT: .LBB53_28: @ %entry
4733 ; SOFT-NEXT: mov r7, r5
4734 ; SOFT-NEXT: cmp r3, #0
4735 ; SOFT-NEXT: bmi .LBB53_14
4736 ; SOFT-NEXT: .LBB53_29: @ %entry
4737 ; SOFT-NEXT: mov r2, r5
4738 ; SOFT-NEXT: cmp r3, #0
4739 ; SOFT-NEXT: beq .LBB53_15
4740 ; SOFT-NEXT: .LBB53_30: @ %entry
4741 ; SOFT-NEXT: mov r7, r2
4742 ; SOFT-NEXT: cmp r3, #0
4743 ; SOFT-NEXT: bpl .LBB53_16
4744 ; SOFT-NEXT: b .LBB53_17
4745 ; SOFT-NEXT: .LBB53_31: @ %entry
4746 ; SOFT-NEXT: mov r5, r6
4747 ; SOFT-NEXT: cmp r5, #0
4748 ; SOFT-NEXT: bne .LBB53_19
4749 ; SOFT-NEXT: .LBB53_32: @ %entry
4750 ; SOFT-NEXT: mov r0, r5
4751 ; SOFT-NEXT: orrs r7, r3
4752 ; SOFT-NEXT: bne .LBB53_20
4753 ; SOFT-NEXT: b .LBB53_21
4871 ; SOFT-LABEL: unroll_maxmin:
4872 ; SOFT: @ %bb.0:
4873 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
4874 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
4875 ; SOFT-NEXT: .pad #20
4876 ; SOFT-NEXT: sub sp, #20
4877 ; SOFT-NEXT: mov r4, r1
4878 ; SOFT-NEXT: mov r5, r0
4879 ; SOFT-NEXT: movs r0, #0
4880 ; SOFT-NEXT: str r0, [sp, #16] @ 4-byte Spill
4881 ; SOFT-NEXT: mvns r0, r0
4882 ; SOFT-NEXT: str r0, [sp, #8] @ 4-byte Spill
4883 ; SOFT-NEXT: movs r0, #1
4884 ; SOFT-NEXT: lsls r1, r0, #31
4885 ; SOFT-NEXT: str r1, [sp, #12] @ 4-byte Spill
4886 ; SOFT-NEXT: str r0, [sp, #4] @ 4-byte Spill
4887 ; SOFT-NEXT: lsls r7, r0, #10
4888 ; SOFT-NEXT: b .LBB54_2
4889 ; SOFT-NEXT: .LBB54_1: @ in Loop: Header=BB54_2 Depth=1
4890 ; SOFT-NEXT: str r0, [r5, #4]
4891 ; SOFT-NEXT: adds r4, #8
4892 ; SOFT-NEXT: adds r5, #8
4893 ; SOFT-NEXT: subs r7, r7, #2
4894 ; SOFT-NEXT: beq .LBB54_18
4895 ; SOFT-NEXT: .LBB54_2: @ =>This Inner Loop Header: Depth=1
4896 ; SOFT-NEXT: ldr r0, [r4]
4897 ; SOFT-NEXT: movs r1, #79
4898 ; SOFT-NEXT: lsls r6, r1, #24
4899 ; SOFT-NEXT: mov r1, r6
4900 ; SOFT-NEXT: bl __aeabi_fmul
4901 ; SOFT-NEXT: bl __aeabi_f2lz
4902 ; SOFT-NEXT: ldr r2, .LCPI54_0
4903 ; SOFT-NEXT: subs r2, r0, r2
4904 ; SOFT-NEXT: mov r2, r1
4905 ; SOFT-NEXT: ldr r3, [sp, #16] @ 4-byte Reload
4906 ; SOFT-NEXT: sbcs r2, r3
4907 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
4908 ; SOFT-NEXT: bge .LBB54_14
4909 ; SOFT-NEXT: @ %bb.3: @ in Loop: Header=BB54_2 Depth=1
4910 ; SOFT-NEXT: cmp r2, #0
4911 ; SOFT-NEXT: beq .LBB54_15
4912 ; SOFT-NEXT: .LBB54_4: @ in Loop: Header=BB54_2 Depth=1
4913 ; SOFT-NEXT: cmp r2, #0
4914 ; SOFT-NEXT: bne .LBB54_6
4915 ; SOFT-NEXT: .LBB54_5: @ in Loop: Header=BB54_2 Depth=1
4916 ; SOFT-NEXT: ldr r0, .LCPI54_0
4917 ; SOFT-NEXT: .LBB54_6: @ in Loop: Header=BB54_2 Depth=1
4918 ; SOFT-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
4919 ; SOFT-NEXT: subs r2, r2, r0
4920 ; SOFT-NEXT: ldr r2, [sp, #8] @ 4-byte Reload
4921 ; SOFT-NEXT: sbcs r2, r1
4922 ; SOFT-NEXT: blt .LBB54_8
4923 ; SOFT-NEXT: @ %bb.7: @ in Loop: Header=BB54_2 Depth=1
4924 ; SOFT-NEXT: ldr r0, [sp, #12] @ 4-byte Reload
4925 ; SOFT-NEXT: .LBB54_8: @ in Loop: Header=BB54_2 Depth=1
4926 ; SOFT-NEXT: str r0, [r5]
4927 ; SOFT-NEXT: ldr r0, [r4, #4]
4928 ; SOFT-NEXT: mov r1, r6
4929 ; SOFT-NEXT: bl __aeabi_fmul
4930 ; SOFT-NEXT: bl __aeabi_f2lz
4931 ; SOFT-NEXT: ldr r2, .LCPI54_0
4932 ; SOFT-NEXT: subs r2, r0, r2
4933 ; SOFT-NEXT: mov r2, r1
4934 ; SOFT-NEXT: ldr r3, [sp, #16] @ 4-byte Reload
4935 ; SOFT-NEXT: sbcs r2, r3
4936 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
4937 ; SOFT-NEXT: bge .LBB54_16
4938 ; SOFT-NEXT: @ %bb.9: @ in Loop: Header=BB54_2 Depth=1
4939 ; SOFT-NEXT: cmp r2, #0
4940 ; SOFT-NEXT: beq .LBB54_17
4941 ; SOFT-NEXT: .LBB54_10: @ in Loop: Header=BB54_2 Depth=1
4942 ; SOFT-NEXT: cmp r2, #0
4943 ; SOFT-NEXT: bne .LBB54_12
4944 ; SOFT-NEXT: .LBB54_11: @ in Loop: Header=BB54_2 Depth=1
4945 ; SOFT-NEXT: ldr r0, .LCPI54_0
4946 ; SOFT-NEXT: .LBB54_12: @ in Loop: Header=BB54_2 Depth=1
4947 ; SOFT-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
4948 ; SOFT-NEXT: subs r2, r2, r0
4949 ; SOFT-NEXT: ldr r2, [sp, #8] @ 4-byte Reload
4950 ; SOFT-NEXT: sbcs r2, r1
4951 ; SOFT-NEXT: blt .LBB54_1
4952 ; SOFT-NEXT: @ %bb.13: @ in Loop: Header=BB54_2 Depth=1
4953 ; SOFT-NEXT: ldr r0, [sp, #12] @ 4-byte Reload
4954 ; SOFT-NEXT: b .LBB54_1
4955 ; SOFT-NEXT: .LBB54_14: @ in Loop: Header=BB54_2 Depth=1
4956 ; SOFT-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
4957 ; SOFT-NEXT: cmp r2, #0
4958 ; SOFT-NEXT: bne .LBB54_4
4959 ; SOFT-NEXT: .LBB54_15: @ in Loop: Header=BB54_2 Depth=1
4960 ; SOFT-NEXT: mov r1, r2
4961 ; SOFT-NEXT: cmp r2, #0
4962 ; SOFT-NEXT: beq .LBB54_5
4963 ; SOFT-NEXT: b .LBB54_6
4964 ; SOFT-NEXT: .LBB54_16: @ in Loop: Header=BB54_2 Depth=1
4965 ; SOFT-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
4966 ; SOFT-NEXT: cmp r2, #0
4967 ; SOFT-NEXT: bne .LBB54_10
4968 ; SOFT-NEXT: .LBB54_17: @ in Loop: Header=BB54_2 Depth=1
4969 ; SOFT-NEXT: mov r1, r2
4970 ; SOFT-NEXT: cmp r2, #0
4971 ; SOFT-NEXT: beq .LBB54_11
4972 ; SOFT-NEXT: b .LBB54_12
4973 ; SOFT-NEXT: .LBB54_18:
4974 ; SOFT-NEXT: add sp, #20
4975 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
4976 ; SOFT-NEXT: .p2align 2
4977 ; SOFT-NEXT: @ %bb.19:
4978 ; SOFT-NEXT: .LCPI54_0:
4979 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
5069 ; SOFT-LABEL: unroll_minmax:
5070 ; SOFT: @ %bb.0:
5071 ; SOFT-NEXT: .save {r4, r5, r6, r7, lr}
5072 ; SOFT-NEXT: push {r4, r5, r6, r7, lr}
5073 ; SOFT-NEXT: .pad #20
5074 ; SOFT-NEXT: sub sp, #20
5075 ; SOFT-NEXT: mov r4, r1
5076 ; SOFT-NEXT: mov r5, r0
5077 ; SOFT-NEXT: movs r0, #0
5078 ; SOFT-NEXT: str r0, [sp, #16] @ 4-byte Spill
5079 ; SOFT-NEXT: mvns r0, r0
5080 ; SOFT-NEXT: str r0, [sp, #12] @ 4-byte Spill
5081 ; SOFT-NEXT: movs r0, #1
5082 ; SOFT-NEXT: lsls r1, r0, #31
5083 ; SOFT-NEXT: str r1, [sp, #8] @ 4-byte Spill
5084 ; SOFT-NEXT: str r0, [sp, #4] @ 4-byte Spill
5085 ; SOFT-NEXT: lsls r7, r0, #10
5086 ; SOFT-NEXT: b .LBB55_2
5087 ; SOFT-NEXT: .LBB55_1: @ in Loop: Header=BB55_2 Depth=1
5088 ; SOFT-NEXT: str r0, [r5, #4]
5089 ; SOFT-NEXT: adds r4, #8
5090 ; SOFT-NEXT: adds r5, #8
5091 ; SOFT-NEXT: subs r7, r7, #2
5092 ; SOFT-NEXT: beq .LBB55_18
5093 ; SOFT-NEXT: .LBB55_2: @ =>This Inner Loop Header: Depth=1
5094 ; SOFT-NEXT: ldr r0, [r4]
5095 ; SOFT-NEXT: movs r1, #79
5096 ; SOFT-NEXT: lsls r6, r1, #24
5097 ; SOFT-NEXT: mov r1, r6
5098 ; SOFT-NEXT: bl __aeabi_fmul
5099 ; SOFT-NEXT: bl __aeabi_f2lz
5100 ; SOFT-NEXT: ldr r2, [sp, #8] @ 4-byte Reload
5101 ; SOFT-NEXT: subs r2, r2, r0
5102 ; SOFT-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
5103 ; SOFT-NEXT: sbcs r2, r1
5104 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
5105 ; SOFT-NEXT: bge .LBB55_14
5106 ; SOFT-NEXT: @ %bb.3: @ in Loop: Header=BB55_2 Depth=1
5107 ; SOFT-NEXT: cmp r2, #0
5108 ; SOFT-NEXT: beq .LBB55_15
5109 ; SOFT-NEXT: .LBB55_4: @ in Loop: Header=BB55_2 Depth=1
5110 ; SOFT-NEXT: cmp r2, #0
5111 ; SOFT-NEXT: bne .LBB55_6
5112 ; SOFT-NEXT: .LBB55_5: @ in Loop: Header=BB55_2 Depth=1
5113 ; SOFT-NEXT: ldr r0, [sp, #8] @ 4-byte Reload
5114 ; SOFT-NEXT: .LBB55_6: @ in Loop: Header=BB55_2 Depth=1
5115 ; SOFT-NEXT: ldr r2, .LCPI55_0
5116 ; SOFT-NEXT: subs r2, r0, r2
5117 ; SOFT-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
5118 ; SOFT-NEXT: sbcs r1, r2
5119 ; SOFT-NEXT: blt .LBB55_8
5120 ; SOFT-NEXT: @ %bb.7: @ in Loop: Header=BB55_2 Depth=1
5121 ; SOFT-NEXT: ldr r0, .LCPI55_0
5122 ; SOFT-NEXT: .LBB55_8: @ in Loop: Header=BB55_2 Depth=1
5123 ; SOFT-NEXT: str r0, [r5]
5124 ; SOFT-NEXT: ldr r0, [r4, #4]
5125 ; SOFT-NEXT: mov r1, r6
5126 ; SOFT-NEXT: bl __aeabi_fmul
5127 ; SOFT-NEXT: bl __aeabi_f2lz
5128 ; SOFT-NEXT: ldr r2, [sp, #8] @ 4-byte Reload
5129 ; SOFT-NEXT: subs r2, r2, r0
5130 ; SOFT-NEXT: ldr r2, [sp, #12] @ 4-byte Reload
5131 ; SOFT-NEXT: sbcs r2, r1
5132 ; SOFT-NEXT: ldr r2, [sp, #4] @ 4-byte Reload
5133 ; SOFT-NEXT: bge .LBB55_16
5134 ; SOFT-NEXT: @ %bb.9: @ in Loop: Header=BB55_2 Depth=1
5135 ; SOFT-NEXT: cmp r2, #0
5136 ; SOFT-NEXT: beq .LBB55_17
5137 ; SOFT-NEXT: .LBB55_10: @ in Loop: Header=BB55_2 Depth=1
5138 ; SOFT-NEXT: cmp r2, #0
5139 ; SOFT-NEXT: bne .LBB55_12
5140 ; SOFT-NEXT: .LBB55_11: @ in Loop: Header=BB55_2 Depth=1
5141 ; SOFT-NEXT: ldr r0, [sp, #8] @ 4-byte Reload
5142 ; SOFT-NEXT: .LBB55_12: @ in Loop: Header=BB55_2 Depth=1
5143 ; SOFT-NEXT: ldr r2, .LCPI55_0
5144 ; SOFT-NEXT: subs r2, r0, r2
5145 ; SOFT-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
5146 ; SOFT-NEXT: sbcs r1, r2
5147 ; SOFT-NEXT: blt .LBB55_1
5148 ; SOFT-NEXT: @ %bb.13: @ in Loop: Header=BB55_2 Depth=1
5149 ; SOFT-NEXT: ldr r0, .LCPI55_0
5150 ; SOFT-NEXT: b .LBB55_1
5151 ; SOFT-NEXT: .LBB55_14: @ in Loop: Header=BB55_2 Depth=1
5152 ; SOFT-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
5153 ; SOFT-NEXT: cmp r2, #0
5154 ; SOFT-NEXT: bne .LBB55_4
5155 ; SOFT-NEXT: .LBB55_15: @ in Loop: Header=BB55_2 Depth=1
5156 ; SOFT-NEXT: ldr r1, [sp, #12] @ 4-byte Reload
5157 ; SOFT-NEXT: cmp r2, #0
5158 ; SOFT-NEXT: beq .LBB55_5
5159 ; SOFT-NEXT: b .LBB55_6
5160 ; SOFT-NEXT: .LBB55_16: @ in Loop: Header=BB55_2 Depth=1
5161 ; SOFT-NEXT: ldr r2, [sp, #16] @ 4-byte Reload
5162 ; SOFT-NEXT: cmp r2, #0
5163 ; SOFT-NEXT: bne .LBB55_10
5164 ; SOFT-NEXT: .LBB55_17: @ in Loop: Header=BB55_2 Depth=1
5165 ; SOFT-NEXT: ldr r1, [sp, #12] @ 4-byte Reload
5166 ; SOFT-NEXT: cmp r2, #0
5167 ; SOFT-NEXT: beq .LBB55_11
5168 ; SOFT-NEXT: b .LBB55_12
5169 ; SOFT-NEXT: .LBB55_18:
5170 ; SOFT-NEXT: add sp, #20
5171 ; SOFT-NEXT: pop {r4, r5, r6, r7, pc}
5172 ; SOFT-NEXT: .p2align 2
5173 ; SOFT-NEXT: @ %bb.19:
5174 ; SOFT-NEXT: .LCPI55_0:
5175 ; SOFT-NEXT: .long 2147483647 @ 0x7fffffff
5265 ; SOFT-LABEL: stest_f32i32i64:
5266 ; SOFT: @ %bb.0: @ %entry
5267 ; SOFT-NEXT: .save {r4, lr}
5268 ; SOFT-NEXT: push {r4, lr}
5269 ; SOFT-NEXT: bl __aeabi_f2lz
5270 ; SOFT-NEXT: movs r3, #0
5271 ; SOFT-NEXT: ldr r2, .LCPI56_0
5272 ; SOFT-NEXT: subs r4, r0, r2
5273 ; SOFT-NEXT: sbcs r1, r3
5274 ; SOFT-NEXT: blt .LBB56_2
5275 ; SOFT-NEXT: @ %bb.1: @ %entry
5276 ; SOFT-NEXT: mov r0, r2
5277 ; SOFT-NEXT: .LBB56_2: @ %entry
5278 ; SOFT-NEXT: ldr r1, .LCPI56_1
5279 ; SOFT-NEXT: cmp r0, r1
5280 ; SOFT-NEXT: bgt .LBB56_4
5281 ; SOFT-NEXT: @ %bb.3: @ %entry
5282 ; SOFT-NEXT: mov r0, r1
5283 ; SOFT-NEXT: .LBB56_4: @ %entry
5284 ; SOFT-NEXT: pop {r4, pc}
5285 ; SOFT-NEXT: .p2align 2
5286 ; SOFT-NEXT: @ %bb.5:
5287 ; SOFT-NEXT: .LCPI56_0:
5288 ; SOFT-NEXT: .long 32767 @ 0x7fff
5289 ; SOFT-NEXT: .LCPI56_1:
5290 ; SOFT-NEXT: .long 4294934528 @ 0xffff8000