Lines Matching +full:ulp +full:- +full:allow
2 * Single-precision vector 2^x function.
4 * Copyright (c) 2019-2023, Arm Limited.
5 * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
19 /* maxerr: 1.962 ulp. */
20 .poly = { V4 (0x1.59977ap-10f), V4 (0x1.3ce9e4p-7f), V4 (0x1.c6bd32p-5f),
21 V4 (0x1.ebf9bcp-3f), V4 (0x1.62e422p-1f) },
29 #define C(i) d->poly[i]
33 # define TinyBound v_u32 (0x20000000) /* asuint (0x1p-63). */
35 # define SpecialBound v_u32 (0x22800000) /* BigBound - TinyBound. */
58 uint32x4_t cmp2 = vcagtq_f32 (n, d->scale_thresh); in special_case()
76 /* asuint(|x|) - TinyBound >= BigBound - TinyBound. */ in V_NAME_F1()
80 /* If any lanes are special, mask them with 1 and retain a copy of x to allow in V_NAME_F1()
88 x = n + r, with r in [-1/2, 1/2]. */ in V_NAME_F1()
92 scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias)); in V_NAME_F1()
95 cmp = vcagtq_f32 (n, d->special_bound); in V_NAME_F1()