Home | History | Annotate | Download | only in ARM
      1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
      2 ; RUN: llc -mtriple=armv7-eabi < %s | FileCheck %s
      3 
      4 define float @trunc_unsigned_f32(float %x) nounwind {
      5 ; CHECK-LABEL: trunc_unsigned_f32:
      6 ; CHECK:       @ %bb.0:
      7 ; CHECK-NEXT:    vmov s0, r0
      8 ; CHECK-NEXT:    vcvt.u32.f32 s0, s0
      9 ; CHECK-NEXT:    vcvt.f32.u32 s0, s0
     10 ; CHECK-NEXT:    vmov r0, s0
     11 ; CHECK-NEXT:    bx lr
     12   %i = fptoui float %x to i32
     13   %r = uitofp i32 %i to float
     14   ret float %r
     15 }
     16 
     17 define double @trunc_unsigned_f64_i64(double %x) nounwind {
     18 ; CHECK-LABEL: trunc_unsigned_f64_i64:
     19 ; CHECK:       @ %bb.0:
     20 ; CHECK-NEXT:    .save {r11, lr}
     21 ; CHECK-NEXT:    push {r11, lr}
     22 ; CHECK-NEXT:    bl __aeabi_d2ulz
     23 ; CHECK-NEXT:    bl __aeabi_ul2d
     24 ; CHECK-NEXT:    pop {r11, pc}
     25   %i = fptoui double %x to i64
     26   %r = uitofp i64 %i to double
     27   ret double %r
     28 }
     29 
     30 define double @trunc_unsigned_f64_i32(double %x) nounwind {
     31 ; CHECK-LABEL: trunc_unsigned_f64_i32:
     32 ; CHECK:       @ %bb.0:
     33 ; CHECK-NEXT:    vmov d16, r0, r1
     34 ; CHECK-NEXT:    vcvt.u32.f64 s0, d16
     35 ; CHECK-NEXT:    vcvt.f64.u32 d16, s0
     36 ; CHECK-NEXT:    vmov r0, r1, d16
     37 ; CHECK-NEXT:    bx lr
     38   %i = fptoui double %x to i32
     39   %r = uitofp i32 %i to double
     40   ret double %r
     41 }
     42 
     43