170 lines · plain
1; RUN: llc -mtriple=i386-pc-linux < %s | FileCheck %s2; RUN: llc -mtriple=x86_64-pc-linux < %s | FileCheck %s3 4; Function Attrs: nounwind5; CHECK-LABEL: s64_to_d:6; CHECK: call{{l|q}} __floatdidf7define double @s64_to_d(i64 %n) #0 {8entry:9 %conv = sitofp i64 %n to double10 ret double %conv11}12 13; CHECK-LABEL: s64_to_f:14; CHECK: call{{l|q}} __floatdisf15define float @s64_to_f(i64 %n) #0 {16entry:17 %conv = sitofp i64 %n to float18 ret float %conv19}20 21; CHECK-LABEL: s32_to_d:22; CHECK: call{{l|q}} __floatsidf23define double @s32_to_d(i32 %n) #0 {24entry:25 %conv = sitofp i32 %n to double26 ret double %conv27}28 29; CHECK-LABEL: s32_to_f:30; CHECK: call{{l|q}} __floatsisf31define float @s32_to_f(i32 %n) #0 {32entry:33 %conv = sitofp i32 %n to float34 ret float %conv35}36 37; CHECK-LABEL: u64_to_d:38; CHECK: call{{l|q}} __floatundidf39define double @u64_to_d(i64 %n) #0 {40entry:41 %conv = uitofp i64 %n to double42 ret double %conv43}44 45; CHECK-LABEL: u64_to_f:46; CHECK: call{{l|q}} __floatundisf47define float @u64_to_f(i64 %n) #0 {48entry:49 %conv = uitofp i64 %n to float50 ret float %conv51}52 53; CHECK-LABEL: u32_to_d:54; CHECK: call{{l|q}} __floatunsidf55define double @u32_to_d(i32 %n) #0 {56entry:57 %conv = uitofp i32 %n to double58 ret double %conv59}60 61; CHECK-LABEL: u32_to_f:62; CHECK: call{{l|q}} __floatunsisf63define float @u32_to_f(i32 %n) #0 {64entry:65 %conv = uitofp i32 %n to float66 ret float %conv67}68 69; CHECK-LABEL: d_to_s64:70; CHECK: call{{l|q}} __fixdfdi71define i64 @d_to_s64(double %n) #0 {72entry:73 %conv = fptosi double %n to i6474 ret i64 %conv75}76 77; CHECK-LABEL: d_to_s32:78; CHECK: call{{l|q}} __fixdfsi79define i32 @d_to_s32(double %n) #0 {80entry:81 %conv = fptosi double %n to i3282 ret i32 %conv83}84 85; CHECK-LABEL: f_to_s64:86; CHECK: call{{l|q}} __fixsfdi87define i64 @f_to_s64(float %n) #0 {88entry:89 %conv = fptosi float %n to i6490 ret i64 %conv91}92 93; CHECK-LABEL: f_to_s32:94; CHECK: call{{l|q}} __fixsfsi95define i32 @f_to_s32(float %n) #0 {96entry:97 %conv = fptosi float %n to i3298 ret i32 %conv99}100 101; CHECK-LABEL: d_to_u64:102; CHECK: call{{l|q}} __fixunsdfdi103define i64 @d_to_u64(double %n) #0 {104entry:105 %conv = fptoui double %n to i64106 ret i64 %conv107}108 109; CHECK-LABEL: d_to_u32:110; CHECK: call{{l|q}} __fixunsdfsi111define i32 @d_to_u32(double %n) #0 {112entry:113 %conv = fptoui double %n to i32114 ret i32 %conv115}116 117; CHECK-LABEL: f_to_u64:118; CHECK: call{{l|q}} __fixunssfdi119define i64 @f_to_u64(float %n) #0 {120entry:121 %conv = fptoui float %n to i64122 ret i64 %conv123}124 125; CHECK-LABEL: f_to_u32:126; CHECK: call{{l|q}} __fixunssfsi127define i32 @f_to_u32(float %n) #0 {128entry:129 %conv = fptoui float %n to i32130 ret i32 %conv131}132 133; CHECK-LABEL: f_to_s8:134; CHECK: call{{l|q}} __fixsfsi135define i8 @f_to_s8(float %f, i8 %i) #0 {136entry:137 %conv = fptosi float %f to i8138 %add = add i8 %conv, %i139 ret i8 %add140}141 142; CHECK-LABEL: f_to_u8:143; CHECK: call{{l|q}} __fixunssfsi144define i8 @f_to_u8(float %f, i8 %i) #0 {145entry:146 %conv = fptoui float %f to i8147 %add = add i8 %conv, %i148 ret i8 %add149}150 151; CHECK-LABEL: f_to_s16:152; CHECK: call{{l|q}} __fixsfsi153define i16 @f_to_s16(float %f, i16 %i) #0 {154entry:155 %conv = fptosi float %f to i16156 %add = add i16 %conv, %i157 ret i16 %add158}159 160; CHECK-LABEL: f_to_u16:161; CHECK: call{{l|q}} __fixunssfsi162define i16 @f_to_u16(float %f, i16 %i) #0 {163entry:164 %conv = fptoui float %f to i16165 %add = add i16 %conv, %i166 ret i16 %add167}168 169attributes #0 = { nounwind "use-soft-float"="true" }170