- RTLIB::Libcall LC = RTLIB::UNKNOWN_LIBCALL;
- switch (Node->getOpcode()) {
- case ISD::FP_TO_SINT: {
- if (VT == MVT::i32) {
- if (OVT == MVT::f32)
- LC = RTLIB::FPTOSINT_F32_I32;
- else if (OVT == MVT::f64)
- LC = RTLIB::FPTOSINT_F64_I32;
- else
- assert(0 && "Unexpected i32-to-fp conversion!");
- } else if (VT == MVT::i64) {
- if (OVT == MVT::f32)
- LC = RTLIB::FPTOSINT_F32_I64;
- else if (OVT == MVT::f64)
- LC = RTLIB::FPTOSINT_F64_I64;
- else if (OVT == MVT::f80)
- LC = RTLIB::FPTOSINT_F80_I64;
- else if (OVT == MVT::ppcf128)
- LC = RTLIB::FPTOSINT_PPCF128_I64;
- else
- assert(0 && "Unexpected i64-to-fp conversion!");
- } else if (VT == MVT::i128) {
- if (OVT == MVT::f32)
- LC = RTLIB::FPTOSINT_F32_I128;
- else if (OVT == MVT::f64)
- LC = RTLIB::FPTOSINT_F64_I128;
- else if (OVT == MVT::f80)
- LC = RTLIB::FPTOSINT_F80_I128;
- else if (OVT == MVT::ppcf128)
- LC = RTLIB::FPTOSINT_PPCF128_I128;
- else
- assert(0 && "Unexpected i128-to-fp conversion!");
- } else {
- assert(0 && "Unexpectd int-to-fp conversion!");
- }
- break;
- }
- case ISD::FP_TO_UINT: {
- if (VT == MVT::i32) {
- if (OVT == MVT::f32)
- LC = RTLIB::FPTOUINT_F32_I32;
- else if (OVT == MVT::f64)
- LC = RTLIB::FPTOUINT_F64_I32;
- else if (OVT == MVT::f80)
- LC = RTLIB::FPTOUINT_F80_I32;
- else
- assert(0 && "Unexpected i32-to-fp conversion!");
- } else if (VT == MVT::i64) {
- if (OVT == MVT::f32)
- LC = RTLIB::FPTOUINT_F32_I64;
- else if (OVT == MVT::f64)
- LC = RTLIB::FPTOUINT_F64_I64;
- else if (OVT == MVT::f80)
- LC = RTLIB::FPTOUINT_F80_I64;
- else if (OVT == MVT::ppcf128)
- LC = RTLIB::FPTOUINT_PPCF128_I64;
- else
- assert(0 && "Unexpected i64-to-fp conversion!");
- } else if (VT == MVT::i128) {
- if (OVT == MVT::f32)
- LC = RTLIB::FPTOUINT_F32_I128;
- else if (OVT == MVT::f64)
- LC = RTLIB::FPTOUINT_F64_I128;
- else if (OVT == MVT::f80)
- LC = RTLIB::FPTOUINT_F80_I128;
- else if (OVT == MVT::ppcf128)
- LC = RTLIB::FPTOUINT_PPCF128_I128;
- else
- assert(0 && "Unexpected i128-to-fp conversion!");
- } else {
- assert(0 && "Unexpectd int-to-fp conversion!");
- }
- break;
- }
- default: assert(0 && "Unreachable!");
- }
- SDOperand Dummy;