Author: Vitaly Buka Date: 2024-01-11T23:08:52-08:00 New Revision: 66f96e7953445486e080d8aececfdf71d5d7c4b9
URL: https://github.com/llvm/llvm-project/commit/66f96e7953445486e080d8aececfdf71d5d7c4b9 DIFF: https://github.com/llvm/llvm-project/commit/66f96e7953445486e080d8aececfdf71d5d7c4b9.diff LOG: Revert "[builtins] Generate __multc3 for z/OS" Added: Modified: compiler-rt/lib/builtins/divtc3.c compiler-rt/lib/builtins/fp_lib.h compiler-rt/lib/builtins/int_types.h compiler-rt/lib/builtins/multc3.c Removed: ################################################################################ diff --git a/compiler-rt/lib/builtins/divtc3.c b/compiler-rt/lib/builtins/divtc3.c index 099de5802daf0e..e970cef574b21d 100644 --- a/compiler-rt/lib/builtins/divtc3.c +++ b/compiler-rt/lib/builtins/divtc3.c @@ -13,7 +13,7 @@ #define QUAD_PRECISION #include "fp_lib.h" -#if defined(CRT_HAS_F128) +#if defined(CRT_HAS_TF_MODE) // Returns: the quotient of (a + ib) / (c + id) diff --git a/compiler-rt/lib/builtins/fp_lib.h b/compiler-rt/lib/builtins/fp_lib.h index ec71b662a72f15..af406e760497a4 100644 --- a/compiler-rt/lib/builtins/fp_lib.h +++ b/compiler-rt/lib/builtins/fp_lib.h @@ -188,8 +188,6 @@ static __inline void wideMultiply(rep_t a, rep_t b, rep_t *hi, rep_t *lo) { #undef Word_HiMask #undef Word_LoMask #undef Word_FullMask -#else -typedef long double fp_t; #endif // defined(CRT_HAS_TF_MODE) #else #error SINGLE_PRECISION, DOUBLE_PRECISION or QUAD_PRECISION must be defined. @@ -376,10 +374,10 @@ static __inline fp_t __compiler_rt_fmax(fp_t x, fp_t y) { #endif } -#elif defined(QUAD_PRECISION) +#elif defined(QUAD_PRECISION) && defined(CRT_HAS_TF_MODE) // The generic implementation only works for ieee754 floating point. For other // floating point types, continue to rely on the libm implementation for now. -#if defined(CRT_HAS_IEEE_TF) && defined(CRT_HAS_128BIT) +#if defined(CRT_HAS_IEEE_TF) static __inline tf_float __compiler_rt_logbtf(tf_float x) { return __compiler_rt_logbX(x); } @@ -407,8 +405,6 @@ static __inline tf_float __compiler_rt_fmaxtf(tf_float x, tf_float y) { #define __compiler_rt_logbl crt_logbl #define __compiler_rt_scalbnl crt_scalbnl #define __compiler_rt_fmaxl crt_fmaxl -#define crt_fabstf crt_fabsl -#define crt_copysigntf crt_copysignl #else #error Unsupported TF mode type #endif diff --git a/compiler-rt/lib/builtins/int_types.h b/compiler-rt/lib/builtins/int_types.h index ca97391fc28466..7624c728061518 100644 --- a/compiler-rt/lib/builtins/int_types.h +++ b/compiler-rt/lib/builtins/int_types.h @@ -189,16 +189,12 @@ typedef long double tf_float; #define CRT_LDBL_IEEE_F128 #endif #define TF_C(x) x##L -#elif __LDBL_MANT_DIG__ == 113 || \ - (__FLT_RADIX__ == 16 && __LDBL_MANT_DIG__ == 28) -// Use long double instead of __float128 if it matches the IEEE 128-bit format -// or the IBM hexadecimal format. +#elif __LDBL_MANT_DIG__ == 113 +// Use long double instead of __float128 if it matches the IEEE 128-bit format. #define CRT_LDBL_128BIT #define CRT_HAS_F128 -#if __LDBL_MANT_DIG__ == 113 #define CRT_HAS_IEEE_TF #define CRT_LDBL_IEEE_F128 -#endif typedef long double tf_float; #define TF_C(x) x##L #elif defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__) diff --git a/compiler-rt/lib/builtins/multc3.c b/compiler-rt/lib/builtins/multc3.c index 61a3f45e47279c..f20e53ccbf233b 100644 --- a/compiler-rt/lib/builtins/multc3.c +++ b/compiler-rt/lib/builtins/multc3.c @@ -15,7 +15,7 @@ #include "int_lib.h" #include "int_math.h" -#if defined(CRT_HAS_F128) +#if defined(CRT_HAS_TF_MODE) // Returns: the product of a + ib and c + id _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits