| /llvm-project-15.0.7/libc/test/src/math/ |
| H A D | FmaTest.h | 24 using FPBits = __llvm_libc::fputil::FPBits<T>; variable 53 EXPECT_FP_EQ(func(T(0.5), T(FPBits(FPBits::MIN_SUBNORMAL)), in test_special_numbers() 54 T(FPBits(FPBits::MIN_SUBNORMAL))), in test_special_numbers() 57 T v = T(FPBits(FPBits::MIN_NORMAL + UIntType(1))); in test_special_numbers() 59 T(FPBits(FPBits::MIN_NORMAL))), in test_special_numbers() 62 T z = T(FPBits(FPBits::MAX_NORMAL)); in test_special_numbers() 72 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in test_subnormal_range() 74 v <= FPBits::MAX_SUBNORMAL && w >= FPBits::MIN_SUBNORMAL; in test_subnormal_range() 87 for (UIntType v = FPBits::MIN_NORMAL, w = FPBits::MAX_NORMAL; in test_normal_range() 88 v <= FPBits::MAX_NORMAL && w >= FPBits::MIN_NORMAL; in test_normal_range() [all …]
|
| H A D | HypotTest.h | 25 using FPBits = __llvm_libc::fputil::FPBits<T>; variable 26 using UIntType = typename FPBits::UIntType; 28 const T inf = T(__llvm_libc::fputil::FPBits<T>::inf()); 30 const T zero = T(__llvm_libc::fputil::FPBits<T>::zero()); 50 UIntType max_value = FPBits::MAX_SUBNORMAL << scale; in test_subnormal_range() 54 v <= max_value && w >= FPBits::MIN_SUBNORMAL; in test_subnormal_range() 56 T x = T(FPBits(v)), y = T(FPBits(w)); in test_subnormal_range() 74 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in test_normal_range() 76 for (UIntType v = FPBits::MIN_NORMAL, w = FPBits::MAX_NORMAL; in test_normal_range() 77 v <= FPBits::MAX_NORMAL && w >= FPBits::MIN_NORMAL; in test_normal_range() [all …]
|
| H A D | ILogbTest.h | 29 func(T(__llvm_libc::fputil::FPBits<T>::build_nan(1)))); in test_special_numbers() 76 using FPBits = __llvm_libc::fputil::FPBits<T>; in test_subnormal_range() local 77 using UIntType = typename FPBits::UIntType; in test_subnormal_range() 80 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in test_subnormal_range() 81 for (UIntType v = FPBits::MIN_SUBNORMAL; v <= FPBits::MAX_SUBNORMAL; in test_subnormal_range() 83 T x = T(FPBits(v)); in test_subnormal_range() 95 using FPBits = __llvm_libc::fputil::FPBits<T>; in test_normal_range() local 96 using UIntType = typename FPBits::UIntType; in test_normal_range() 98 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in test_normal_range() 99 for (UIntType v = FPBits::MIN_NORMAL; v <= FPBits::MAX_NORMAL; v += STEP) { in test_normal_range() [all …]
|
| H A D | RemQuoTest.h | 23 using FPBits = __llvm_libc::fputil::FPBits<T>; variable 24 using UIntType = typename FPBits::UIntType; 28 const T inf = T(__llvm_libc::fputil::FPBits<T>::inf()); 100 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in testSubnormalRange() 101 for (UIntType v = FPBits::MIN_SUBNORMAL, w = FPBits::MAX_SUBNORMAL; in testSubnormalRange() 102 v <= FPBits::MAX_SUBNORMAL && w >= FPBits::MIN_SUBNORMAL; in testSubnormalRange() 104 T x = T(FPBits(v)), y = T(FPBits(w)); in testSubnormalRange() 114 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in testNormalRange() 115 for (UIntType v = FPBits::MIN_NORMAL, w = FPBits::MAX_NORMAL; in testNormalRange() 116 v <= FPBits::MAX_NORMAL && w >= FPBits::MIN_NORMAL; in testNormalRange() [all …]
|
| H A D | LdExpTest.h | 23 using FPBits = __llvm_libc::fputil::FPBits<T>; variable 25 using UIntType = typename FPBits::UIntType; 31 const T zero = T(__llvm_libc::fputil::FPBits<T>::zero()); 33 const T inf = T(__llvm_libc::fputil::FPBits<T>::inf()); 102 NormalFloat(-FPBits::EXPONENT_BIAS, MANTISSA, 0), in testNormalOperation() 121 int exp = -FPBits::MAX_EXPONENT - 5; in testNormalOperation() 123 FPBits result_bits(result); in testNormalOperation() 130 ASSERT_TRUE(FPBits(result).is_zero()); in testNormalOperation() 135 exp = FPBits::MAX_EXPONENT + 5; in testNormalOperation() 136 ASSERT_FALSE(FPBits(func(x, exp)).is_inf()); in testNormalOperation() [all …]
|
| H A D | expm1f_test.cpp | 58 float x = float(FPBits(0xc2cffff8U)); in TEST() 61 x = float(FPBits(0xc2d00008U)); in TEST() 71 x = float(FPBits(0x42affff8U)); in TEST() 76 x = float(FPBits(0x42b00008U)); in TEST() 81 x = float(FPBits(0xc2affff8U)); in TEST() 86 x = float(FPBits(0xc2b00008U)); in TEST() 91 x = float(FPBits(0x3dc252ddU)); in TEST() 96 x = float(FPBits(0x3e35bec5U)); in TEST() 101 x = float(FPBits(0x942ed494U)); in TEST() 106 x = float(FPBits(0xbdc1c6cbU)); in TEST() [all …]
|
| H A D | RIntTest.h | 33 using FPBits = __llvm_libc::fputil::FPBits<T>; 36 const T zero = T(FPBits::zero()); 38 const T inf = T(FPBits::inf()); 39 const T neg_inf = T(FPBits::neg_inf()); 40 const T nan = T(FPBits::build_nan(1)); 98 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in testSubnormalRange() 99 for (UIntType i = FPBits::MIN_SUBNORMAL; i <= FPBits::MAX_SUBNORMAL; in testSubnormalRange() 101 T x = T(FPBits(i)); in testSubnormalRange() 112 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in testNormalRange() 113 for (UIntType i = FPBits::MIN_NORMAL; i <= FPBits::MAX_NORMAL; i += STEP) { in testNormalRange() [all …]
|
| H A D | expf_test.cpp | 44 EXPECT_FP_EQ(inf, __llvm_libc::expf(float(FPBits(0x7f7fffffU)))); in TEST() 47 EXPECT_FP_EQ(inf, __llvm_libc::expf(float(FPBits(0x42cffff8U)))); in TEST() 50 EXPECT_FP_EQ(inf, __llvm_libc::expf(float(FPBits(0x42d00008U)))); in TEST() 59 float x = float(FPBits(0xc2cffff8U)); in TEST() 64 x = float(FPBits(0xc2d00008U)); in TEST() 76 x = float(FPBits(0x42affff8U)); in TEST() 81 x = float(FPBits(0x42b00008U)); in TEST() 86 x = float(FPBits(0xc2affff8U)); in TEST() 91 x = float(FPBits(0xc2b00008U)); in TEST() 96 x = float(FPBits(0xc236bd8cU)); in TEST() [all …]
|
| H A D | NextAfterTest.h | 22 using FPBits = __llvm_libc::fputil::FPBits<T>; variable 29 const T zero = T(FPBits::zero()); 30 const T neg_zero = T(FPBits::neg_zero()); 31 const T inf = T(FPBits::inf()); 32 const T neg_inf = T(FPBits::neg_inf()); 33 const T nan = T(FPBits::build_nan(1)); 163 FPBits x_bits = FPBits(x); in testBoundaries() 164 FPBits result_bits = FPBits(result); in testBoundaries() 171 result_bits = FPBits(result); in testBoundaries() 179 result_bits = FPBits(result); in testBoundaries() [all …]
|
| H A D | RoundToIntegerTest.h | 32 using FPBits = __llvm_libc::fputil::FPBits<F>; 33 using UIntType = typename FPBits::UIntType; 37 const F inf = F(__llvm_libc::fputil::FPBits<F>::inf()); 122 FPBits bits(F(1.0)); in do_round_numbers_test() 186 FPBits bits(F(1.0)); in testIntegerOverflow() 213 (FPBits::MAX_SUBNORMAL - FPBits::MIN_SUBNORMAL) / COUNT; in testSubnormalRange() 214 for (UIntType i = FPBits::MIN_SUBNORMAL; i <= FPBits::MAX_SUBNORMAL; in testSubnormalRange() 216 F x = F(FPBits(i)); in testSubnormalRange() 256 constexpr UIntType STEP = (FPBits::MAX_NORMAL - FPBits::MIN_NORMAL) / COUNT; in testNormalRange() 257 for (UIntType i = FPBits::MIN_NORMAL; i <= FPBits::MAX_NORMAL; i += STEP) { in testNormalRange() [all …]
|
| /llvm-project-15.0.7/libc/test/src/math/differential_testing/ |
| H A D | BinaryOpSingleOutputDiff.h | 17 using FPBits = fputil::FPBits<T>; variable 18 using UIntType = typename FPBits::UIntType; 37 T x = T(FPBits(bitsX)); in run_diff_in_range() 38 T y = T(FPBits(bitsY)); in run_diff_in_range() 39 FPBits myBits = FPBits(myFunc(x, y)); in run_diff_in_range() 40 FPBits otherBits = FPBits(otherFunc(x, y)); in run_diff_in_range() 71 T x = T(FPBits(bitsX)); in run_perf_in_range() 72 T y = T(FPBits(bitsY)); in run_perf_in_range() 128 /* endingBit= */ FPBits::MAX_SUBNORMAL, 1'000'001, log); in run_diff() 131 myFunc, otherFunc, /* startingBit= */ FPBits::MIN_NORMAL, in run_diff() [all …]
|
| H A D | SingleInputSingleOutputDiff.h | 17 using FPBits = fputil::FPBits<T>; variable 18 using UIntType = typename FPBits::UIntType; 31 T x = T(FPBits(bits)); in runDiff() 34 UIntType myBits = FPBits(myResult).uintval(); in runDiff() 35 UIntType otherBits = FPBits(otherResult).uintval(); in runDiff() 55 T x = T(FPBits(bits)); in runPerfInRange() 95 /* endingBit= */ FPBits::MAX_SUBNORMAL, log); in runPerf() 97 runPerfInRange(myFunc, otherFunc, /* startingBit= */ FPBits::MIN_NORMAL, in runPerf() 98 /* endingBit= */ FPBits::MAX_NORMAL, log); in runPerf()
|
| /llvm-project-15.0.7/libc/src/__support/FPUtil/ |
| H A D | ManipulationFunctions.h | 29 FPBits<T> bits(x); in frexp() 46 FPBits<T> bits(x); in modf() 52 return bits.get_sign() ? T(FPBits<T>::neg_zero()) : T(FPBits<T>::zero()); in modf() 58 return bits.get_sign() ? T(FPBits<T>::neg_zero()) : T(FPBits<T>::zero()); in modf() 68 FPBits<T> xbits(x); in copysign() 78 FPBits<T> bits(x); in ilogb() 105 FPBits<T> bits(x); in logb() 124 FPBits<T> bits(x); in ldexp() 136 return bits.get_sign() ? T(FPBits<T>::neg_inf()) : T(FPBits<T>::inf()); in ldexp() 140 return bits.get_sign() ? T(FPBits<T>::neg_zero()) : T(FPBits<T>::zero()); in ldexp() [all …]
|
| H A D | NormalFloat.h | 33 using UIntType = typename FPBits<T>::UIntType; 57 explicit NormalFloat(T x) { init_from_bits(FPBits<T>(x)); } in NormalFloat() 59 explicit NormalFloat(FPBits<T> bits) { init_from_bits(bits); } in NormalFloat() 92 int biased_exponent = exponent + FPBits<T>::EXPONENT_BIAS; in T() 96 return sign ? T(FPBits<T>::neg_inf()) : T(FPBits<T>::inf()); in T() 99 FPBits<T> result(T(0.0)); in T() 102 constexpr int SUBNORMAL_EXPONENT = -FPBits<T>::EXPONENT_BIAS + 1; in T() 141 void init_from_bits(FPBits<T> bits) { in init_from_bits() 156 exponent = 1 - FPBits<T>::EXPONENT_BIAS - shift; in init_from_bits() 214 return sign ? FPBits<long double>::neg_inf() : FPBits<long double>::inf(); [all …]
|
| H A D | FPBits.h | 41 template <typename T> struct FPBits { struct 108 constexpr explicit FPBits(XType x) in FPBits() argument 113 constexpr explicit FPBits(XType x) : bits(x) {} in FPBits() argument 115 FPBits() : bits(0) {} in FPBits() argument 151 static constexpr FPBits<T> zero(bool sign = false) { argument 157 static constexpr FPBits<T> inf() { in inf() argument 158 FPBits<T> bits; in inf() 163 static constexpr FPBits<T> neg_inf() { in neg_inf() argument 164 FPBits<T> bits = inf(); in neg_inf() 170 FPBits<T> bits = inf(); in build_nan() argument [all …]
|
| /llvm-project-15.0.7/libc/src/__support/FPUtil/x86_64/ |
| H A D | NextAfterLongDouble.h | 27 using FPBits = FPBits<long double>; in nextafter() local 28 FPBits from_bits(from); in nextafter() 32 FPBits to_bits(to); in nextafter() 45 using UIntType = FPBits::UIntType; in nextafter() 55 int_val = SIGN_VAL + FPBits::MIN_NORMAL; in nextafter() 67 if (int_val == (SIGN_VAL + FPBits::MIN_NORMAL)) { in nextafter() 70 int_val = SIGN_VAL + FPBits::MAX_SUBNORMAL; in nextafter() 88 if (int_val == FPBits::MIN_NORMAL) { in nextafter() 89 int_val = FPBits::MAX_SUBNORMAL; in nextafter() 100 if (int_val == FPBits::MAX_SUBNORMAL) { in nextafter() [all …]
|
| H A D | LongDoubleBits.h | 35 template <> struct FPBits<long double> { 100 FPBits() : bits(0) {} 112 explicit FPBits(XType x) : bits(x) {} 157 static FPBits<long double> zero() { return FPBits<long double>(0.0l); } 159 static FPBits<long double> neg_zero() { 160 FPBits<long double> bits(0.0l); 165 static FPBits<long double> inf() { 166 FPBits<long double> bits(0.0l); 172 static FPBits<long double> neg_inf() { 173 FPBits<long double> bits(0.0l); [all …]
|
| /llvm-project-15.0.7/libc/src/math/generic/ |
| H A D | log2f.cpp | 102 using FPBits = typename fputil::FPBits<float>; typedef 103 FPBits xbits(x); 107 switch (FPBits(x).uintval()) { 128 if (xbits.uintval() < FPBits::MIN_NORMAL || 129 xbits.uintval() > FPBits::MAX_NORMAL) { 131 return static_cast<float>(FPBits::neg_inf()); 134 return FPBits::build_nan(1 << (fputil::MantissaWidth<float>::VALUE - 1)); 151 FPBits f = xbits;
|
| H A D | logf.cpp | 54 using FPBits = typename fputil::FPBits<float>; typedef 55 FPBits xbits(x); 57 switch (FPBits(x).uintval()) { 94 if (xbits.uintval() < FPBits::MIN_NORMAL || 95 xbits.uintval() > FPBits::MAX_NORMAL) { 97 return static_cast<float>(FPBits::neg_inf()); 100 return FPBits::build_nan(1 << (fputil::MantissaWidth<float>::VALUE - 1)); 115 FPBits f = xbits;
|
| H A D | log1pf.cpp | 38 using FPBits = typename fputil::FPBits<double>; in log() typedef 39 FPBits xbits(x); in log() 42 return static_cast<float>(fputil::FPBits<float>::neg_inf()); in log() 45 if (xbits.uintval() > FPBits::MAX_NORMAL) { in log() 47 return fputil::FPBits<float>::build_nan( in log() 62 FPBits f = xbits; in log() 81 using FPBits = typename fputil::FPBits<float>; typedef 82 FPBits xbits(x);
|
| H A D | exp2f.cpp | 51 using FPBits = typename fputil::FPBits<float>; typedef 52 FPBits xbits(x); 99 return static_cast<float>(FPBits(FPBits::MAX_NORMAL)); 104 return x + static_cast<float>(FPBits::inf()); 115 return static_cast<float>(FPBits(FPBits::MIN_SUBNORMAL)); 145 fputil::FPBits<double> exp_hi(
|
| H A D | expf.cpp | 24 using FPBits = typename fputil::FPBits<float>; typedef 25 FPBits xbits(x); 51 return static_cast<float>(FPBits(FPBits::MIN_SUBNORMAL)); 61 return static_cast<float>(FPBits(FPBits::MAX_NORMAL)); 66 return x + static_cast<float>(FPBits::inf());
|
| H A D | log10f.cpp | 107 using FPBits = typename fputil::FPBits<float>; typedef 108 FPBits xbits(x); 145 if (xbits.uintval() < FPBits::MIN_NORMAL || 146 xbits.uintval() > FPBits::MAX_NORMAL) { 148 return static_cast<float>(FPBits::neg_inf()); 151 return FPBits::build_nan(1 << (fputil::MantissaWidth<float>::VALUE - 1)); 166 FPBits f = xbits;
|
| /llvm-project-15.0.7/libc/test/src/stdlib/ |
| H A D | atof_test.cpp | 21 __llvm_libc::fputil::FPBits<double> expected_fp = in TEST() 22 __llvm_libc::fputil::FPBits<double>(uint64_t(0x405ec00000000000)); in TEST() 27 __llvm_libc::fputil::FPBits<double> actual_fp = in TEST() 28 __llvm_libc::fputil::FPBits<double>(result); in TEST() 38 __llvm_libc::fputil::FPBits<double> expected_fp = in TEST() 39 __llvm_libc::fputil::FPBits<double>(uint64_t(0)); in TEST() 44 __llvm_libc::fputil::FPBits<double> actual_fp = in TEST() 45 __llvm_libc::fputil::FPBits<double>(result); in TEST()
|
| /llvm-project-15.0.7/libc/src/__support/ |
| H A D | str_to_float.h | 95 using BitsType = typename fputil::FPBits<T>::UIntType; in eisel_lemire() 327 *outputExp2 = fputil::FPBits<T>::MAX_EXPONENT; in simple_decimal_conversion() 378 if (exp2 >= fputil::FPBits<T>::MAX_EXPONENT) { in simple_decimal_conversion() 380 *outputExp2 = fputil::FPBits<T>::MAX_EXPONENT; in simple_decimal_conversion() 418 if (exp2 >= fputil::FPBits<T>::MAX_EXPONENT) { in simple_decimal_conversion() 513 fputil::FPBits<T> result; in clinger_fast_path() 517 result = fputil::FPBits<T>(float_mantissa); in clinger_fast_path() 533 result = fputil::FPBits<T>(float_mantissa * in clinger_fast_path() 539 result = fputil::FPBits<T>(float_mantissa / in clinger_fast_path() 565 *outputExp2 = fputil::FPBits<T>::MAX_EXPONENT; in decimal_exp_to_float() [all …]
|