xref: /llvm-project/libc/test/src/stdfix/uksqrtui_test.cpp (revision 7dd4ce484c8913ced124f2f62ac4c3eaafa9ef5f)
1ad33fe12Slntue //===-- Unittests for uksqrtui --------------------------------------------===//
2ad33fe12Slntue //
3ad33fe12Slntue // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4ad33fe12Slntue // See https://llvm.org/LICENSE.txt for license information.
5ad33fe12Slntue // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6ad33fe12Slntue //
7ad33fe12Slntue //===----------------------------------------------------------------------===//
8ad33fe12Slntue 
9ad33fe12Slntue #include "ISqrtTest.h"
10ad33fe12Slntue 
11ad33fe12Slntue #include "src/__support/fixed_point/sqrt.h"
12ad33fe12Slntue #include "src/stdfix/uksqrtui.h"
13ad33fe12Slntue 
uksqrtui_fast(unsigned int x)14ad33fe12Slntue unsigned accum uksqrtui_fast(unsigned int x) {
15ad33fe12Slntue   return LIBC_NAMESPACE::fixed_point::isqrt_fast(x);
16ad33fe12Slntue }
17ad33fe12Slntue 
18ad33fe12Slntue LIST_ISQRT_TESTS(UI, unsigned int, LIBC_NAMESPACE::uksqrtui);
19ad33fe12Slntue 
TEST_F(LlvmLibcISqrtUITest,LargeInteger)20*7dd4ce48Slntue TEST_F(LlvmLibcISqrtUITest, LargeInteger) {
21*7dd4ce48Slntue   testSpecificInput(65529u, LIBC_NAMESPACE::uksqrtui(65529u), 0x1.fff8fep7,
22*7dd4ce48Slntue                     0x3.0p-16);
23*7dd4ce48Slntue }
24*7dd4ce48Slntue 
25ad33fe12Slntue LIST_ISQRT_TESTS(UIFast, unsigned int, uksqrtui_fast);
26*7dd4ce48Slntue 
TEST_F(LlvmLibcISqrtUIFastTest,LargeInteger)27*7dd4ce48Slntue TEST_F(LlvmLibcISqrtUIFastTest, LargeInteger) {
28*7dd4ce48Slntue   testSpecificInput(65529u, uksqrtui_fast(65529u), 0x1.fff8fep7, 0x3.0p-16);
29*7dd4ce48Slntue }
30