brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 3295c50 Raw
79 lines · plain
1; RUN: llc -mtriple=arm-eabi -float-abi=soft -mattr=+vfp2 %s -o - | FileCheck %s2 3define float @f(i32 %a) {4;CHECK-LABEL: f:5;CHECK: vmov6;CHECK-NEXT: vcvt.f32.s327;CHECK-NEXT: vmov8entry:9        %tmp = sitofp i32 %a to float           ; <float> [#uses=1]10        ret float %tmp11}12 13define double @g(i32 %a) {14;CHECK-LABEL: g:15;CHECK: vmov16;CHECK-NEXT: vcvt.f64.s3217;CHECK-NEXT: vmov18entry:19        %tmp = sitofp i32 %a to double          ; <double> [#uses=1]20        ret double %tmp21}22 23define double @uint_to_double(i32 %a) {24;CHECK-LABEL: uint_to_double:25;CHECK: vmov26;CHECK-NEXT: vcvt.f64.u3227;CHECK-NEXT: vmov28entry:29        %tmp = uitofp i32 %a to double          ; <double> [#uses=1]30        ret double %tmp31}32 33define float @uint_to_float(i32 %a) {34;CHECK-LABEL: uint_to_float:35;CHECK: vmov36;CHECK-NEXT: vcvt.f32.u3237;CHECK-NEXT: vmov38entry:39        %tmp = uitofp i32 %a to float           ; <float> [#uses=1]40        ret float %tmp41}42 43define double @h(ptr %v) {44;CHECK-LABEL: h:45;CHECK: vldr46;CHECK-NEXT: vmov47entry:48        %tmp = load double, ptr %v          ; <double> [#uses=1]49        ret double %tmp50}51 52define float @h2() {53;CHECK-LABEL: h2:54;CHECK: mov r0, #106535321655entry:56        ret float 1.000000e+0057}58 59define double @f2(double %a) {60;CHECK-LABEL: f2:61;CHECK-NOT: vmov62        ret double %a63}64 65define void @f3() {66;CHECK-LABEL: f3:67;CHECK-NOT: vmov68;CHECK: f469entry:70        %tmp = call double @f5( )               ; <double> [#uses=1]71        call void @f4( double %tmp )72        ret void73}74 75declare void @f4(double)76 77declare double @f5()78 79