1*5f757f3fSDimitry Andric //===-- lib/trunctfsf2.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 17*5f757f3fSDimitry Andric #define SRC_QUAD 18*5f757f3fSDimitry Andric #define DST_80 19*5f757f3fSDimitry Andric #include "fp_trunc_impl.inc" 20*5f757f3fSDimitry Andric 21*5f757f3fSDimitry Andric COMPILER_RT_ABI xf_float __trunctfxf2(tf_float a) { return __truncXfYf2__(a); } 22*5f757f3fSDimitry Andric 23*5f757f3fSDimitry Andric #endif 24