1*5f757f3fSDimitry Andric //===-- lib/extendxftf2.c - long double -> quad conversion --------*- C -*-===// 2*5f757f3fSDimitry Andric // 3*5f757f3fSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*5f757f3fSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*5f757f3fSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*5f757f3fSDimitry Andric // 7*5f757f3fSDimitry Andric //===----------------------------------------------------------------------===// 8*5f757f3fSDimitry Andric 9*5f757f3fSDimitry Andric // Assumption: long double is a IEEE 80 bit floating point type padded to 128 10*5f757f3fSDimitry Andric // bits. 11*5f757f3fSDimitry Andric 12*5f757f3fSDimitry Andric #define QUAD_PRECISION 13*5f757f3fSDimitry Andric #include "fp_lib.h" 14*5f757f3fSDimitry Andric 15*5f757f3fSDimitry Andric #if defined(CRT_HAS_TF_MODE) && __LDBL_MANT_DIG__ == 64 && defined(__x86_64__) 16*5f757f3fSDimitry Andric #define SRC_80 17*5f757f3fSDimitry Andric #define DST_QUAD 18*5f757f3fSDimitry Andric #include "fp_extend_impl.inc" 19*5f757f3fSDimitry Andric 20*5f757f3fSDimitry Andric COMPILER_RT_ABI tf_float __extendxftf2(xf_float a) { 21*5f757f3fSDimitry Andric return __extendXfYf2__(a); 22*5f757f3fSDimitry Andric } 23*5f757f3fSDimitry Andric 24*5f757f3fSDimitry Andric #endif 25