diff options
Diffstat (limited to 'libc/src/math')
-rw-r--r-- | libc/src/math/CMakeLists.txt | 2 | ||||
-rw-r--r-- | libc/src/math/generic/CMakeLists.txt | 38 | ||||
-rw-r--r-- | libc/src/math/generic/remainderf16.cpp | 20 | ||||
-rw-r--r-- | libc/src/math/generic/remquof16.cpp | 19 | ||||
-rw-r--r-- | libc/src/math/remainderf16.h | 20 | ||||
-rw-r--r-- | libc/src/math/remquof16.h | 20 |
6 files changed, 113 insertions, 6 deletions
diff --git a/libc/src/math/CMakeLists.txt b/libc/src/math/CMakeLists.txt index f8582d8..82dfdaf 100644 --- a/libc/src/math/CMakeLists.txt +++ b/libc/src/math/CMakeLists.txt @@ -315,11 +315,13 @@ add_math_entrypoint_object(powf) add_math_entrypoint_object(remainder) add_math_entrypoint_object(remainderf) add_math_entrypoint_object(remainderl) +add_math_entrypoint_object(remainderf16) add_math_entrypoint_object(remquo) add_math_entrypoint_object(remquof) add_math_entrypoint_object(remquof128) add_math_entrypoint_object(remquol) +add_math_entrypoint_object(remquof16) add_math_entrypoint_object(rint) add_math_entrypoint_object(rintf) diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt index caaa0ac..f4f683e 100644 --- a/libc/src/math/generic/CMakeLists.txt +++ b/libc/src/math/generic/CMakeLists.txt @@ -2495,7 +2495,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O2 + -O3 ) add_entrypoint_object( @@ -2519,7 +2519,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O2 + -O3 ) add_entrypoint_object( @@ -2531,7 +2531,20 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O2 + -O3 +) + +add_entrypoint_object( + remquof16 + SRCS + remquof16.cpp + HDRS + ../remquof16.h + DEPENDS + libc.src.__support.macros.properties.types + libc.src.__support.FPUtil.division_and_remainder_operations + COMPILE_OPTIONS + -O3 ) add_entrypoint_object( @@ -2543,7 +2556,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O2 + -O3 ) add_entrypoint_object( @@ -2555,7 +2568,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O2 + -O3 ) add_entrypoint_object( @@ -2567,7 +2580,20 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O2 + -O3 +) + +add_entrypoint_object( + remainderf16 + SRCS + remainderf16.cpp + HDRS + ../remainderf16.h + DEPENDS + libc.src.__support.macros.properties.types + libc.src.__support.FPUtil.division_and_remainder_operations + COMPILE_OPTIONS + -O3 ) add_entrypoint_object( diff --git a/libc/src/math/generic/remainderf16.cpp b/libc/src/math/generic/remainderf16.cpp new file mode 100644 index 0000000..3517722 --- /dev/null +++ b/libc/src/math/generic/remainderf16.cpp @@ -0,0 +1,20 @@ +//===-- Implementation of remainderf16 function ---------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "src/math/remainderf16.h" +#include "src/__support/FPUtil/DivisionAndRemainderOperations.h" +#include "src/__support/common.h" + +namespace LIBC_NAMESPACE { + +LLVM_LIBC_FUNCTION(float16, remainderf16, (float16 x, float16 y)) { + int quotient; + return fputil::remquo(x, y, quotient); +} + +} // namespace LIBC_NAMESPACE diff --git a/libc/src/math/generic/remquof16.cpp b/libc/src/math/generic/remquof16.cpp new file mode 100644 index 0000000..a373bfa --- /dev/null +++ b/libc/src/math/generic/remquof16.cpp @@ -0,0 +1,19 @@ +//===-- Implementation of remquof16 function ------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "src/math/remquof16.h" +#include "src/__support/FPUtil/DivisionAndRemainderOperations.h" +#include "src/__support/common.h" + +namespace LIBC_NAMESPACE { + +LLVM_LIBC_FUNCTION(float16, remquof16, (float16 x, float16 y, int *exp)) { + return fputil::remquo(x, y, *exp); +} + +} // namespace LIBC_NAMESPACE diff --git a/libc/src/math/remainderf16.h b/libc/src/math/remainderf16.h new file mode 100644 index 0000000..e23eead --- /dev/null +++ b/libc/src/math/remainderf16.h @@ -0,0 +1,20 @@ +//===-- Implementation header for remainderf16 ------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC_MATH_REMAINDERF16_H +#define LLVM_LIBC_SRC_MATH_REMAINDERF16_H + +#include "src/__support/macros/properties/types.h" + +namespace LIBC_NAMESPACE { + +float16 remainderf16(float16 x, float16 y); + +} // namespace LIBC_NAMESPACE + +#endif // LLVM_LIBC_SRC_MATH_REMAINDERF16_H diff --git a/libc/src/math/remquof16.h b/libc/src/math/remquof16.h new file mode 100644 index 0000000..fee848c --- /dev/null +++ b/libc/src/math/remquof16.h @@ -0,0 +1,20 @@ +//===-- Implementation header for remquof16 ---------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC_MATH_REMQUOF16_H +#define LLVM_LIBC_SRC_MATH_REMQUOF16_H + +#include "src/__support/macros/properties/types.h" + +namespace LIBC_NAMESPACE { + +float16 remquof16(float16 x, float16 y, int *exp); + +} // namespace LIBC_NAMESPACE + +#endif // LLVM_LIBC_SRC_MATH_REMQUOF16_H |