llvm.org GIT mirror llvm / release_29 test / CodeGen / ARM / fp.ll
release_29

Tree @release_29 (Download .tar.gz)

fp.ll @release_29

e8e72be
02b985c
6263f94
e8e72be
e516549
 
 
02b985c
6263f94
 
02b985c
2718519
6263f94
e8e72be
e516549
 
 
02b985c
6263f94
02b985c
 
e5bbd6d
6263f94
e8e72be
e516549
 
 
5aca927
6263f94
 
5aca927
 
6263f94
e8e72be
e516549
 
 
a38bbf7
6263f94
 
a38bbf7
 
6263f94
e8e72be
e516549
 
02b985c
6263f94
 
02b985c
 
6263f94
e8e72be
d4ef243
cd71da5
 
 
a284584
6263f94
e8e72be
e516549
a284584
 
4a408d4
6263f94
e8e72be
e516549
e8e72be
614057b
6263f94
 
 
4a408d4
614057b
6263f94
 
 
 
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s

define float @f(i32 %a) {
;CHECK: f:
;CHECK: vmov
;CHECK-NEXT: vcvt.f32.s32
;CHECK-NEXT: vmov
entry:
        %tmp = sitofp i32 %a to float           ; <float> [#uses=1]
        ret float %tmp
}

define double @g(i32 %a) {
;CHECK: g:
;CHECK: vmov
;CHECK-NEXT: vcvt.f64.s32
;CHECK-NEXT: vmov
entry:
        %tmp = sitofp i32 %a to double          ; <double> [#uses=1]
        ret double %tmp
}

define double @uint_to_double(i32 %a) {
;CHECK: uint_to_double:
;CHECK: vmov
;CHECK-NEXT: vcvt.f64.u32
;CHECK-NEXT: vmov
entry:
        %tmp = uitofp i32 %a to double          ; <double> [#uses=1]
        ret double %tmp
}

define float @uint_to_float(i32 %a) {
;CHECK: uint_to_float:
;CHECK: vmov
;CHECK-NEXT: vcvt.f32.u32
;CHECK-NEXT: vmov
entry:
        %tmp = uitofp i32 %a to float           ; <float> [#uses=1]
        ret float %tmp
}

define double @h(double* %v) {
;CHECK: h:
;CHECK: vldr.64 
;CHECK-NEXT: vmov
entry:
        %tmp = load double* %v          ; <double> [#uses=1]
        ret double %tmp
}

define float @h2() {
;CHECK: h2:
;CHECK: mov r0, #254, 10
entry:
        ret float 1.000000e+00
}

define double @f2(double %a) {
;CHECK: f2:
;CHECK-NOT: vmov
        ret double %a
}

define void @f3() {
;CHECK: f3:
;CHECK-NOT: vmov
;CHECK: f4
entry:
        %tmp = call double @f5( )               ; <double> [#uses=1]
        call void @f4( double %tmp )
        ret void
}

declare void @f4(double)

declare double @f5()