131 lines · plain
1; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefixes=CHECK,X862; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefixes=CHECK,X643 4define i129 @fptosi_float(float %a) nounwind {5; CHECK-LABEL: fptosi_float:6; CHECK-NOT: call7 %res = fptosi float %a to i1298 ret i129 %res9}10 11define i129 @fptosi_double(double %a) nounwind {12; CHECK-LABEL: fptosi_double:13; CHECK-NOT: call14 %res = fptosi double %a to i12915 ret i129 %res16}17 18define i129 @fptosi_fp128(fp128 %a) nounwind {19; CHECK-LABEL: fptosi_fp128:20; CHECK-NOT: call21 %res = fptosi fp128 %a to i12922 ret i129 %res23}24 25define i129 @fptoui_float(float %a) nounwind {26; CHECK-LABEL: fptoui_float:27; CHECK-NOT: call28 %res = fptoui float %a to i12929 ret i129 %res30}31 32define i129 @fptoui_double(double %a) nounwind {33; CHECK-LABEL: fptoui_double:34; CHECK-NOT: call35 %res = fptoui double %a to i12936 ret i129 %res37}38 39define i129 @fptoui_fp128(fp128 %a) nounwind {40; CHECK-LABEL: fptoui_fp128:41; CHECK-NOT: call42 %res = fptoui fp128 %a to i12943 ret i129 %res44}45 46define float @sitofp_float(i129 %a) nounwind {47; CHECK-LABEL: sitofp_float:48; CHECK-NOT: call49 %res = sitofp i129 %a to float50 ret float %res51}52 53define double @sitofp_double(i129 %a) nounwind {54; CHECK-LABEL: sitofp_double:55; CHECK-NOT: call56 %res = sitofp i129 %a to double57 ret double %res58}59 60define fp128 @sitofp_fp128(i129 %a) nounwind {61; CHECK-LABEL: sitofp_fp128:62; CHECK-NOT: call63 %res = sitofp i129 %a to fp12864 ret fp128 %res65}66 67define float @uitofp_float(i129 %a) nounwind {68; CHECK-LABEL: uitofp_float:69; CHECK-NOT: call70 %res = uitofp i129 %a to float71 ret float %res72}73 74define double @uitofp_double(i129 %a) nounwind {75; CHECK-LABEL: uitofp_double:76; CHECK-NOT: call77 %res = uitofp i129 %a to double78 ret double %res79}80 81define fp128 @uitofp_fp128(i129 %a) nounwind {82; CHECK-LABEL: uitofp_fp128:83; CHECK-NOT: call84 %res = uitofp i129 %a to fp12885 ret fp128 %res86}87 88; higher sizes89define i257 @fptosi257_double(double %a) nounwind {90; CHECK-LABEL: fptosi257_double:91; CHECK-NOT: call92 %res = fptosi double %a to i25793 ret i257 %res94}95 96; half tests97define i257 @fptosi_half(half %a) nounwind {98; X86-LABEL: fptosi_half:99; X86: __extendhfsf2100;101; X64-LABEL: fptosi_half:102; X64: __extendhfsf2103 %res = fptosi half %a to i257104 ret i257 %res105}106 107define half @uitofp_half(i257 %a) nounwind {108; X86-LABEL: uitofp_half:109; X86: __truncsfhf2110;111; X64-LABEL: uitofp_half:112; X64: __truncsfhf2113 %res = uitofp i257 %a to half114 ret half %res115}116 117; x86_fp80 tests118define i257 @fptoui_x86_fp80(x86_fp80 %a) nounwind {119; CHECK-LABEL: fptoui_x86_fp80:120; CHECK: __extendxftf2121 %res = fptoui x86_fp80 %a to i257122 ret i257 %res123}124 125define x86_fp80 @sitofp_x86_fp80(i257 %a) nounwind {126; CHECK-LABEL: sitofp_x86_fp80:127; CHECK: __trunctfxf2128 %res = sitofp i257 %a to x86_fp80129 ret x86_fp80 %res130}131