diff --git a/libc/src/math/fmin.cpp b/libc/src/math/fmin.cpp --- a/libc/src/math/fmin.cpp +++ b/libc/src/math/fmin.cpp @@ -11,8 +11,8 @@ namespace __llvm_libc { -double LLVM_LIBC_ENTRYPOINT(fmin)(double x, double y) { - return fputil::fmin(x, y); +double LLVM_LIBC_ENTRYPOINT(fmin)(double x, double y) { + return fputil::fmin(x, y); } } // namespace __llvm_libc diff --git a/libc/src/math/fminf.cpp b/libc/src/math/fminf.cpp --- a/libc/src/math/fminf.cpp +++ b/libc/src/math/fminf.cpp @@ -12,7 +12,7 @@ namespace __llvm_libc { float LLVM_LIBC_ENTRYPOINT(fminf)(float x, float y) { - return fputil::fmin(x, y); + return fputil::fmin(x, y); } } // namespace __llvm_libc diff --git a/libc/test/src/math/fmin_test.cpp b/libc/test/src/math/fmin_test.cpp --- a/libc/test/src/math/fmin_test.cpp +++ b/libc/test/src/math/fmin_test.cpp @@ -24,32 +24,25 @@ TEST(FminTest, SpecialNumbers) { BitTypes orderedValues[SPECIAL_NUMBERS_SIZE] = { - BitPatterns::negInf, - Properties::signMask | BitTypes{12345}, - BitPatterns::negZero, - BitPatterns::zero, - BitTypes{12345}, - BitPatterns::inf - }; + BitPatterns::negInf, Properties::signMask | BitTypes{12345}, + BitPatterns::negZero, BitPatterns::zero, + BitTypes{12345}, BitPatterns::inf}; for (int i = 0; i < SPECIAL_NUMBERS_SIZE; ++i) { - for (int j = 0; j < SPECIAL_NUMBERS_SIZE; ++j) { - EXPECT_EQ( - orderedValues[(i < j ? i : j)], - valueAsBits(__llvm_libc::fmin(valueFromBits(orderedValues[i]), - valueFromBits(orderedValues[j]))) - ); - } + for (int j = 0; j < SPECIAL_NUMBERS_SIZE; ++j) { + EXPECT_EQ( + orderedValues[(i < j ? i : j)], + valueAsBits(__llvm_libc::fmin(valueFromBits(orderedValues[i]), + valueFromBits(orderedValues[j])))); + } } - EXPECT_EQ( - BitPatterns::inf, - valueAsBits(__llvm_libc::fmin(valueFromBits(BitPatterns::aQuietNaN), - valueFromBits(BitPatterns::inf)))); - - EXPECT_EQ( - BitPatterns::aSignallingNaN, - valueAsBits(__llvm_libc::fmin(valueFromBits(BitPatterns::aQuietNaN), - valueFromBits(BitPatterns::aSignallingNaN)))); + EXPECT_EQ(BitPatterns::inf, + valueAsBits(__llvm_libc::fmin(valueFromBits(BitPatterns::aQuietNaN), + valueFromBits(BitPatterns::inf)))); + EXPECT_EQ(BitPatterns::aSignallingNaN, + valueAsBits( + __llvm_libc::fmin(valueFromBits(BitPatterns::aQuietNaN), + valueFromBits(BitPatterns::aSignallingNaN)))); } diff --git a/libc/test/src/math/fminf_test.cpp b/libc/test/src/math/fminf_test.cpp --- a/libc/test/src/math/fminf_test.cpp +++ b/libc/test/src/math/fminf_test.cpp @@ -25,21 +25,16 @@ TEST(FminfTest, SpecialNumbers) { BitTypes orderedValues[SPECIAL_NUMBERS_SIZE] = { - BitPatterns::negInf, - Properties::signMask | BitTypes{123456789}, - BitPatterns::negZero, - BitPatterns::zero, - BitTypes{123456789}, - BitPatterns::inf - }; + BitPatterns::negInf, Properties::signMask | BitTypes{123456789}, + BitPatterns::negZero, BitPatterns::zero, + BitTypes{123456789}, BitPatterns::inf}; for (int i = 0; i < SPECIAL_NUMBERS_SIZE; ++i) { for (int j = 0; j < SPECIAL_NUMBERS_SIZE; ++j) { - EXPECT_EQ( - orderedValues[(i < j ? i : j)], - valueAsBits(__llvm_libc::fminf(valueFromBits(orderedValues[i]), - valueFromBits(orderedValues[j]))) - ); + EXPECT_EQ( + orderedValues[(i < j ? i : j)], + valueAsBits(__llvm_libc::fminf(valueFromBits(orderedValues[i]), + valueFromBits(orderedValues[j])))); } } diff --git a/libc/utils/FPUtil/ComparisonFunctions.h b/libc/utils/FPUtil/ComparisonFunctions.h --- a/libc/utils/FPUtil/ComparisonFunctions.h +++ b/libc/utils/FPUtil/ComparisonFunctions.h @@ -6,34 +6,34 @@ // //===----------------------------------------------------------------------===// +#ifndef LLVM_LIBC_UTILS_FPUTIL_COMPARISON_FUNCTIONS_H +#define LLVM_LIBC_UTILS_FPUTIL_COMPARISON_FUNCTIONS_H + #include "FPBits.h" -#include "FloatProperties.h" #include "FloatOperations.h" +#include "FloatProperties.h" #include "utils/CPP/TypeTraits.h" -#ifndef LLVM_LIBC_UTILS_FPUTIL_COMPARISON_FUNCTIONS_H -#define LLVM_LIBC_UTILS_FPUTIL_COMPARISON_FUNCTIONS_H - namespace __llvm_libc { namespace fputil { template ::Value, int> = 0> static inline T fmin(T x, T y) { - FPBits bit_x(x), bit_y(y); - - if (bit_x.isNaN()) { - return y; - } else if (bit_y.isNaN()) { - return x; - } else if (bit_x.sign != bit_y.sign) { - return (bit_x.sign ? x : y); - } else if (absBits(x) < absBits(y)) { - return bit_x.sign ? y : x; - } else { - return bit_x.sign ? x : y; - } + FPBits bit_x(x), bit_y(y); + + if (bit_x.isNaN()) { + return y; + } else if (bit_y.isNaN()) { + return x; + } else if (bit_x.sign != bit_y.sign) { + return (bit_x.sign ? x : y); + } else if (absBits(x) < absBits(y)) { + return bit_x.sign ? y : x; + } else { + return bit_x.sign ? x : y; + } } } // namespace fputil