1 ; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARM
2 ; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB
6 define void @sitofp_single_i32(i32 %a, float %b) nounwind ssp {
8 ; ARM: sitofp_single_i32
10 ; ARM: vcvt.f32.s32 s0, s0
11 ; THUMB: sitofp_single_i32
13 ; THUMB: vcvt.f32.s32 s0, s0
14 %b.addr = alloca float, align 4
15 %conv = sitofp i32 %a to float
16 store float %conv, float* %b.addr, align 4
20 define void @sitofp_single_i16(i16 %a, float %b) nounwind ssp {
22 ; ARM: sitofp_single_i16
25 ; ARM: vcvt.f32.s32 s0, s0
26 ; THUMB: sitofp_single_i16
29 ; THUMB: vcvt.f32.s32 s0, s0
30 %b.addr = alloca float, align 4
31 %conv = sitofp i16 %a to float
32 store float %conv, float* %b.addr, align 4
36 define void @sitofp_single_i8(i8 %a) nounwind ssp {
38 ; ARM: sitofp_single_i8
41 ; ARM: vcvt.f32.s32 s0, s0
42 ; THUMB: sitofp_single_i8
45 ; THUMB: vcvt.f32.s32 s0, s0
46 %b.addr = alloca float, align 4
47 %conv = sitofp i8 %a to float
48 store float %conv, float* %b.addr, align 4
52 define void @sitofp_double_i32(i32 %a, double %b) nounwind ssp {
54 ; ARM: sitofp_double_i32
56 ; ARM: vcvt.f64.s32 d16, s0
57 ; THUMB: sitofp_double_i32
59 ; THUMB: vcvt.f64.s32 d16, s0
60 %b.addr = alloca double, align 8
61 %conv = sitofp i32 %a to double
62 store double %conv, double* %b.addr, align 8
66 define void @sitofp_double_i16(i16 %a, double %b) nounwind ssp {
68 ; ARM: sitofp_double_i16
71 ; ARM: vcvt.f64.s32 d16, s0
72 ; THUMB: sitofp_double_i16
75 ; THUMB: vcvt.f64.s32 d16, s0
76 %b.addr = alloca double, align 8
77 %conv = sitofp i16 %a to double
78 store double %conv, double* %b.addr, align 8
82 define void @sitofp_double_i8(i8 %a, double %b) nounwind ssp {
84 ; ARM: sitofp_double_i8
87 ; ARM: vcvt.f64.s32 d16, s0
88 ; THUMB: sitofp_double_i8
91 ; THUMB: vcvt.f64.s32 d16, s0
92 %b.addr = alloca double, align 8
93 %conv = sitofp i8 %a to double
94 store double %conv, double* %b.addr, align 8