1*412f47f9SXin Li /* 2*412f47f9SXin Li * PL macros to aid testing. This version of this file is used for building the 3*412f47f9SXin Li * routine, not the tests. Separate definitions are found in test/pl_test.h 4*412f47f9SXin Li * which emit test parameters. 5*412f47f9SXin Li * 6*412f47f9SXin Li * Copyright (c) 2022-2023, Arm Limited. 7*412f47f9SXin Li * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception. 8*412f47f9SXin Li */ 9*412f47f9SXin Li 10*412f47f9SXin Li /* Emit max ULP threshold - silenced for building the routine. */ 11*412f47f9SXin Li #define PL_TEST_ULP(f, l) 12*412f47f9SXin Li 13*412f47f9SXin Li /* Emit routine name if e == 1 and f is expected to correctly trigger fenv 14*412f47f9SXin Li exceptions. e allows declaration to be emitted conditionally upon certain 15*412f47f9SXin Li build flags - defer expansion by one pass to allow those flags to be expanded 16*412f47f9SXin Li properly. */ 17*412f47f9SXin Li #define PL_TEST_EXPECT_FENV(f, e) 18*412f47f9SXin Li #define PL_TEST_EXPECT_FENV_ALWAYS(f) 19*412f47f9SXin Li 20*412f47f9SXin Li #define PL_TEST_INTERVAL(f, lo, hi, n) 21*412f47f9SXin Li #define PL_TEST_SYM_INTERVAL(f, lo, hi, n) 22*412f47f9SXin Li #define PL_TEST_INTERVAL_C(f, lo, hi, n, c) 23*412f47f9SXin Li #define PL_TEST_SYM_INTERVAL_C(f, lo, hi, n, c) 24*412f47f9SXin Li #define PL_TEST_INTERVAL2(f, xlo, xhi, ylo, yhi, n) 25