llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-amdgpu Author: Krishna Pandey (krishna2803) <details> <summary>Changes</summary> This PR adds the following basic math functions for BFloat16 type along with the tests: - totalorderbf16 - totalordermagbf16 --- Patch is 25.61 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155568.diff 24 Files Affected: - (modified) libc/config/baremetal/aarch64/entrypoints.txt (+3-1) - (modified) libc/config/baremetal/arm/entrypoints.txt (+3-1) - (modified) libc/config/baremetal/riscv/entrypoints.txt (+3-1) - (modified) libc/config/darwin/aarch64/entrypoints.txt (+3-1) - (modified) libc/config/darwin/x86_64/entrypoints.txt (+3-1) - (modified) libc/config/gpu/amdgpu/entrypoints.txt (+3-1) - (modified) libc/config/gpu/nvptx/entrypoints.txt (+3-1) - (modified) libc/config/linux/aarch64/entrypoints.txt (+3-1) - (modified) libc/config/linux/arm/entrypoints.txt (+3-1) - (modified) libc/config/linux/riscv/entrypoints.txt (+3-1) - (modified) libc/config/linux/x86_64/entrypoints.txt (+3-1) - (modified) libc/config/windows/entrypoints.txt (+3-1) - (modified) libc/docs/headers/math/index.rst (+2-2) - (modified) libc/src/math/CMakeLists.txt (+2) - (modified) libc/src/math/generic/CMakeLists.txt (+29) - (added) libc/src/math/generic/totalorderbf16.cpp (+22) - (added) libc/src/math/generic/totalordermagbf16.cpp (+22) - (added) libc/src/math/totalorderbf16.h (+21) - (added) libc/src/math/totalordermagbf16.h (+21) - (modified) libc/test/src/math/smoke/CMakeLists.txt (+26) - (modified) libc/test/src/math/smoke/TotalOrderMagTest.h (+33-8) - (modified) libc/test/src/math/smoke/TotalOrderTest.h (+33-8) - (added) libc/test/src/math/smoke/totalorderbf16_test.cpp (+14) - (added) libc/test/src/math/smoke/totalordermagbf16_test.cpp (+14) ``````````diff diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt index ce6d0a7e440a4..ff3a6bfa8a2fc 100644 --- a/libc/config/baremetal/aarch64/entrypoints.txt +++ b/libc/config/baremetal/aarch64/entrypoints.txt @@ -794,7 +794,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -817,6 +817,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt index d8fffd0da48da..f8916d71f86aa 100644 --- a/libc/config/baremetal/arm/entrypoints.txt +++ b/libc/config/baremetal/arm/entrypoints.txt @@ -797,7 +797,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -820,6 +820,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt index 2a120b2f68c41..8a72fa6692869 100644 --- a/libc/config/baremetal/riscv/entrypoints.txt +++ b/libc/config/baremetal/riscv/entrypoints.txt @@ -797,7 +797,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -820,6 +820,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt index 8945b61f186b3..796c0d3c8a4ff 100644 --- a/libc/config/darwin/aarch64/entrypoints.txt +++ b/libc/config/darwin/aarch64/entrypoints.txt @@ -627,7 +627,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -650,6 +650,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt index 1a5c75fb0c038..fa1d8def8936c 100644 --- a/libc/config/darwin/x86_64/entrypoints.txt +++ b/libc/config/darwin/x86_64/entrypoints.txt @@ -270,7 +270,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -293,6 +293,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt index 53fbabc6fce39..49c41411cb5d2 100644 --- a/libc/config/gpu/amdgpu/entrypoints.txt +++ b/libc/config/gpu/amdgpu/entrypoints.txt @@ -653,7 +653,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -676,6 +676,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt index a970618643f5c..06a2c9addb7fb 100644 --- a/libc/config/gpu/nvptx/entrypoints.txt +++ b/libc/config/gpu/nvptx/entrypoints.txt @@ -655,7 +655,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -678,6 +678,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt index e55c47e1ee4d6..feea7ff69c166 100644 --- a/libc/config/linux/aarch64/entrypoints.txt +++ b/libc/config/linux/aarch64/entrypoints.txt @@ -882,7 +882,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -905,6 +905,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt index 55554e439e71e..8e92fac863c6b 100644 --- a/libc/config/linux/arm/entrypoints.txt +++ b/libc/config/linux/arm/entrypoints.txt @@ -497,7 +497,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -520,6 +520,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt index 6bf97c5164ada..fb08cfe7bd3f8 100644 --- a/libc/config/linux/riscv/entrypoints.txt +++ b/libc/config/linux/riscv/entrypoints.txt @@ -900,7 +900,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -923,6 +923,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt index 998d4193c353b..37af75454daa3 100644 --- a/libc/config/linux/x86_64/entrypoints.txt +++ b/libc/config/linux/x86_64/entrypoints.txt @@ -933,7 +933,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -956,6 +956,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt index 2ca06edfa9a2c..c09e6b259fa42 100644 --- a/libc/config/windows/entrypoints.txt +++ b/libc/config/windows/entrypoints.txt @@ -343,7 +343,7 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.getpayloadbf16 libc.src.math.ilogbbf16 libc.src.math.iscanonicalbf16 - libc.src.math.isignalingbf16 + libc.src.math.issignalingbf16 libc.src.math.ldexpbf16 libc.src.math.llogbbf16 libc.src.math.llrintbf16 @@ -366,6 +366,8 @@ list(APPEND TARGET_LIBM_ENTRYPOINTS libc.src.math.setpayloadbf16 libc.src.math.setpayloadsigbf16 libc.src.math.truncbf16 + libc.src.math.totalorderbf16 + libc.src.math.totalordermagbf16 libc.src.math.ufromfpbf16 libc.src.math.ufromfpxbf16 ) diff --git a/libc/docs/headers/math/index.rst b/libc/docs/headers/math/index.rst index 818386aa18f02..89624460c3af5 100644 --- a/libc/docs/headers/math/index.rst +++ b/libc/docs/headers/math/index.rst @@ -241,9 +241,9 @@ Basic Operations +------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+ | setpayloadsig | |check| | |check| | |check| | |check| | |check| | |check| | F.10.13.3 | N/A | +------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+ -| totalorder | |check| | |check| | |check| | |check| | |check| | | F.10.12.1 | N/A | +| totalorder | |check| | |check| | |check| | |check| | |check| | |check| | F.10.12.1 | N/A | +------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+ -| totalordermag | |check| | |check| | |check| | |check| | |check| | | F.10.12.2 | N/A | +| totalordermag | |check| | |check| | |check| | |check| | |check| | |check| | F.10.12.2 | N/A | +------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+ | trunc | |check| | |check| | |check| | |check| | |check| | |check| | 7.12.9.9 | F.10.6.9 | +------------------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+------------------------+----------------------------+ diff --git a/libc/src/math/CMakeLists.txt b/libc/src/math/CMakeLists.txt index e6a2f868e46b5..1edb517421e28 100644 --- a/libc/src/math/CMakeLists.txt +++ b/libc/src/math/CMakeLists.txt @@ -579,12 +579,14 @@ add_math_entrypoint_object(totalorderf) add_math_entrypoint_object(totalorderl) add_math_entrypoint_object(totalorderf16) add_math_entrypoint_object(totalorderf128) +add_math_entrypoint_object(totalorderbf16) add_math_entrypoint_object(totalordermag) add_math_entrypoint_object(totalordermagf) add_math_entrypoint_object(totalordermagl) add_math_entrypoint_object(totalordermagf16) add_math_entrypoint_object(totalordermagf128) +add_math_entrypoint_object(totalordermagbf16) add_math_entrypoint_object(trunc) add_math_entrypoint_object(truncf) diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt index 70ca5c51990de..904f8d2eb4704 100644 --- a/libc/src/math/generic/CMakeLists.txt +++ b/libc/src/math/generic/CMakeLists.txt @@ -4784,6 +4784,21 @@ add_entrypoint_object( libc.src.__support.FPUtil.basic_operations libc.src.__support.macros.properties.types ) + +add_entrypoint_object( + totalorderbf16 + SRCS + totalorderbf16.cpp + HDRS + ../totalorderbf16.h + DEPENDS + libc.src.__support.common + libc.src.__support.macros.config + libc.src.__support.macros.properties.types + libc.src.__support.FPUtil.basic_operations + libc.src.__support.FPUtil.bfloat16 +) + add_entrypoint_object( totalordermag SRCS @@ -4835,6 +4850,20 @@ add_entrypoint_object( libc.src.__support.macros.properties.types ) +add_entrypoint_object( + totalordermagbf16 + SRCS + totalordermagbf16.cpp + HDRS + ../totalordermagbf16.h + DEPENDS + libc.src.__support.common + libc.src.__support.macros.config + libc.src.__support.macros.properties.types + libc.src.__support.FPUtil.basic_operations + libc.src.__support.FPUtil.bfloat16 +) + add_entrypoint_object( getpayload SRCS diff --git a/libc/src/math/generic/totalorderbf16.cpp b/libc/src/math/generic/totalorderbf16.cpp new file mode 100644 index 0000000000000..bb9c86e281f6b --- /dev/null +++ b/libc/src/math/generic/totalorderbf16.cpp @@ -0,0 +1,22 @@ +//===-- Implementation of totalorderbf16 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/totalorderbf16.h" +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/FPUtil/bfloat16.h" +#include "src/__support/common.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { + +LLVM_LIBC_FUNCTION(int, totalorderbf16, + (const bfloat16 *x, const bfloat16 *y)) { + return static_cast<int>(fputil::totalorder(*x, *y)); +} + +} // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/totalordermagbf16.cpp b/libc/src/math/generic/totalordermagbf16.cpp new file mode 100644 index 0000000000000..3fc61d9d8bcb4 --- /dev/null +++ b/libc/src/math/generic/totalordermagbf16.cpp @@ -0,0 +1,22 @@ +//===-- Implementation of totalordermagbf16 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/totalordermagbf16.h" +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/FPUtil/bfloat16.h" +#include "src/__support/common.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { + +LLVM_LIBC_FUNCTION(int, totalordermagbf16, + (const bfloat16 *x, const bfloat16 *y)) { + return static_cast<int>(fputil::totalordermag(*x, *y)); +} + +} // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/totalorderbf16.h b/libc/src/math/totalorderbf16.h new file mode 100644 index 0000000000000..2414852db92b8 --- /dev/null +++ b/libc/src/math/totalorderbf16.h @@ -0,0 +1,21 @@ +//===-- Implementation header for totalorderbf16 ----------------*- 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_TOTALORDERF16_H +#define LLVM_LIBC_SRC_MATH_TOTALORDERF16_H + +#include "src/__support/macros/config.h" +#include "src/__support/macros/properties/types.h" + +namespace LIBC_NAMESPACE_DECL { + +int totalorderbf16(const bfloat16 *x, const bfloat16 *y); + +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC_MATH_TOTALORDERF16_H diff --git a/libc/src/math/totalordermagbf16.h b/libc/src/math/totalordermagbf16.h new file mode 100644 index 0000000000000..c48de1ca8e540 --- /dev/null +++ b/libc/src/math/totalordermagbf16.h @@ -0,0 +1,21 @@ +//===-- Implementation header for totalordermagbf16 -------------*- 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_TOTALORDERMAGF16_H +#define LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H + +#include "src/__support/macros/config.h" +#include "src/__support/macros/properties/types.h" + +namespace LIBC_NAMESPACE_DECL { + +int totalordermagbf16(const bfloat16 *x, const bfloat16 *y); + +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt index 0497d5e0c06ed..166802fd9f9cc 100644 --- a/libc/test/src/math/smoke/CMakeLists.txt +++ b/libc/test/src/math/smoke/CMakeLists.txt @@ -5050,6 +5050,19 @@ add_fp_unittest( libc.src.math.totalorderf128 ) +add_fp_unittest( + totalorderbf16_test + SUITE + libc-math-smoke-tests + SRCS + totalorderbf16_test.cpp + HDRS + TotalOrderTest.h + DEPENDS + libc.src.math.totalorderbf16 + libc.src.__support.FPUtil.bfloat16 +) + add_fp_unittest( totalordermag_test SUITE @@ -5110,6 +5123,19 @@ add_fp_unittest( libc.src.math.totalordermagf128 ) +add_fp_unittest( + totalordermagbf16_test + SUITE + libc-math-smoke-tests + SRCS + totalordermagbf16_test.cpp + HDRS + TotalOrderMagTest.h + DEPENDS + libc.src.math.totalordermagbf16 + libc.src.__support.FPUtil.bfloat16 +) + add_fp_unittest( getpayload_test SUITE diff --git a/libc/test/src/math/smoke/TotalOrderMagTest.h b/libc/test/src/math/smoke/TotalOrderMagTest.h index 0a13fd2922e4c..2b37d8b2f6c4a 100644 --- a/libc/test/src/math/smoke/TotalOrderMagTest.h +++ b/libc/test/src/math/smoke/TotalOrderMagTest.h @@ -111,19 +111,44 @@ class TotalOrderMagTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest { T snan_0x42 = FPBits::signaling_nan(Sign::POS, 0x42).get_val(); T neg_snan_0x42 = FPBits::signaling_nan(Sign::NEG, 0x42).get_val(); + T qnan_0x15 = FPBits::quiet_nan(Sign::POS, 0x15).get_val(); + T neg_qnan_0x15 = FPBits::quiet_nan(Sign::NEG, 0x15).get_val(); + T snan_0x15 = FPBits::signaling_nan(Sign::POS, 0x15).get_val(); + T neg_snan_0x15 = FPBits::signaling_nan(Sign::NEG, 0x15).get_val(); + EXPECT_TRUE(funcWrapper(func, aNaN, aNaN)); EXPECT_TRUE(funcWrapper(func, sNaN, sNaN)); - EXPECT_TRUE(funcWrapper(func, aNaN, qnan_0x42)); - EXPECT_FALSE(funcWrapper(func, sNaN, snan_0x42)); - EXPECT_FALSE(funcWrapper(func, qnan_0x42, aNaN)); - EXPECT_TRUE(funcWrapper(func, snan_0x42, sNaN)); + + if constexpr (FPBits::FRACTION_LEN - 1 >= 7) { + EXPECT_TRUE(funcWrapper(func, aNaN, qnan_0x42)); + EXPECT_FALSE(funcWrapper(func, sNaN, sna... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/155568 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
