//===----------------------------------------------------------------------===// // // 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 // //===----------------------------------------------------------------------===// /// /// \file /// This file contains the conformance test of the exp2f function. /// //===----------------------------------------------------------------------===// #include "mathtest/CommandLineExtras.hpp" #include "mathtest/ExhaustiveGenerator.hpp" #include "mathtest/IndexedRange.hpp" #include "mathtest/TestConfig.hpp" #include "mathtest/TestRunner.hpp" #include "llvm/ADT/StringRef.h" #include #include namespace mathtest { template <> struct FunctionConfig { static constexpr llvm::StringRef Name = "exp2f"; static constexpr llvm::StringRef KernelName = "exp2fKernel"; // Source: The Khronos Group, The OpenCL C Specification v3.0.19, Sec. 7.4, // Table 65, Khronos Registry [July 10, 2025]. static constexpr uint64_t UlpTolerance = 3; }; } // namespace mathtest int main(int argc, const char **argv) { llvm::cl::ParseCommandLineOptions(argc, argv, "Conformance test of the exp2f function"); using namespace mathtest; IndexedRange Range; ExhaustiveGenerator Generator(Range); const auto Configs = cl::getTestConfigs(); const llvm::StringRef DeviceBinaryDir = DEVICE_BINARY_DIR; const bool IsVerbose = cl::IsVerbose; bool Passed = runTests(Generator, Configs, DeviceBinaryDir, IsVerbose); return Passed ? EXIT_SUCCESS : EXIT_FAILURE; }