xref: /llvm-project/libc/src/math/generic/fabs.cpp (revision 70843bf658004cc6997e4978e625140abce77427)
1bbb75554SSiva Chandra //===-- Implementation of fabs function -----------------------------------===//
2bbb75554SSiva Chandra //
3bbb75554SSiva Chandra // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4bbb75554SSiva Chandra // See https://llvm.org/LICENSE.txt for license information.
5bbb75554SSiva Chandra // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6bbb75554SSiva Chandra //
7bbb75554SSiva Chandra //===----------------------------------------------------------------------===//
8bbb75554SSiva Chandra 
9bbb75554SSiva Chandra #include "src/math/fabs.h"
10c120edc7SMichael Jones #include "src/__support/FPUtil/BasicOperations.h"
11bbb75554SSiva Chandra #include "src/__support/common.h"
125ff3ff33SPetr Hosek #include "src/__support/macros/config.h"
13bbb75554SSiva Chandra 
145ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL {
15bbb75554SSiva Chandra 
16*70843bf6SOverMighty LLVM_LIBC_FUNCTION(double, fabs, (double x)) {
17*70843bf6SOverMighty #ifdef __LIBC_MISC_MATH_BASIC_OPS_OPT
18*70843bf6SOverMighty   return __builtin_fabs(x);
19*70843bf6SOverMighty #else
20*70843bf6SOverMighty   return fputil::abs(x);
21*70843bf6SOverMighty #endif
22*70843bf6SOverMighty }
23bbb75554SSiva Chandra 
245ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL
25