1d4128046STue Ly //===-- Unittests for fdim ------------------------------------------------===//
2d4128046STue Ly //
3d4128046STue Ly // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4d4128046STue Ly // See https://llvm.org/LICENSE.txt for license information.
5d4128046STue Ly // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6d4128046STue Ly //
7d4128046STue Ly //===----------------------------------------------------------------------===//
8d4128046STue Ly 
9d4128046STue Ly #include "FDimTest.h"
10d4128046STue Ly 
11c120edc7SMichael Jones #include "src/__support/FPUtil/FPBits.h"
12d4128046STue Ly #include "src/math/fdim.h"
136c3f53c7SSiva Chandra Reddy #include "utils/UnitTest/FPMatcher.h"
14d4128046STue Ly #include "utils/UnitTest/Test.h"
153e18fb33SMichael Jones #include <math.h>
16d4128046STue Ly 
171df0dbfcSMichael Jones using LlvmLibcFDimTest = FDimTestTemplate<double>;
18d4128046STue Ly 
TEST_F(LlvmLibcFDimTest,NaNArg_fdim)19*25226f3eSMichael Jones TEST_F(LlvmLibcFDimTest, NaNArg_fdim) { test_na_n_arg(&__llvm_libc::fdim); }
20d4128046STue Ly 
TEST_F(LlvmLibcFDimTest,InfArg_fdim)21*25226f3eSMichael Jones TEST_F(LlvmLibcFDimTest, InfArg_fdim) { test_inf_arg(&__llvm_libc::fdim); }
22d4128046STue Ly 
TEST_F(LlvmLibcFDimTest,NegInfArg_fdim)23*25226f3eSMichael Jones TEST_F(LlvmLibcFDimTest, NegInfArg_fdim) {
24*25226f3eSMichael Jones   test_neg_inf_arg(&__llvm_libc::fdim);
25*25226f3eSMichael Jones }
26d4128046STue Ly 
TEST_F(LlvmLibcFDimTest,BothZero_fdim)27*25226f3eSMichael Jones TEST_F(LlvmLibcFDimTest, BothZero_fdim) { test_both_zero(&__llvm_libc::fdim); }
28d4128046STue Ly 
TEST_F(LlvmLibcFDimTest,InDoubleRange_fdim)291df0dbfcSMichael Jones TEST_F(LlvmLibcFDimTest, InDoubleRange_fdim) {
30*25226f3eSMichael Jones   test_in_range(&__llvm_libc::fdim);
311df0dbfcSMichael Jones }
32