Lines Matching refs:pg

82 sv_isint (svbool_t pg, svfloat64_t x)  in sv_isint()  argument
84 return svcmpeq (pg, svrintz_z (pg, x), x); in sv_isint()
89 sv_isnotint (svbool_t pg, svfloat64_t x) in sv_isnotint() argument
91 return svcmpne (pg, svrintz_z (pg, x), x); in sv_isnotint()
96 sv_isodd (svbool_t pg, svfloat64_t x) in sv_isodd() argument
99 return sv_isnotint (pg, y); in sv_isodd()
135 sv_zeroinfnan (svbool_t pg, svuint64_t i) in sv_zeroinfnan() argument
137 return svcmpge (pg, svsub_x (pg, svadd_x (pg, i, i), 1), in sv_zeroinfnan()
190 sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail, in sv_log_inline() argument
196 svuint64_t tmp = svsub_x (pg, ix, d->off); in sv_log_inline()
197 svuint64_t i = svand_x (pg, svlsr_x (pg, tmp, 52 - V_POW_LOG_TABLE_BITS), in sv_log_inline()
199 svint64_t k = svasr_x (pg, svreinterpret_s64 (tmp), 52); in sv_log_inline()
200 svuint64_t iz = svsub_x (pg, ix, svlsl_x (pg, svreinterpret_u64 (k), 52)); in sv_log_inline()
202 svfloat64_t kd = svcvt_f64_x (pg, k); in sv_log_inline()
208 svfloat64_t invc = svld1_gather_index (pg, __v_pow_log_data.invc, i); in sv_log_inline()
209 svfloat64_t logc = svld1_gather_index (pg, __v_pow_log_data.logc, i); in sv_log_inline()
210 svfloat64_t logctail = svld1_gather_index (pg, __v_pow_log_data.logctail, i); in sv_log_inline()
214 svfloat64_t r = svmad_x (pg, z, invc, -1.0); in sv_log_inline()
219 svfloat64_t t2 = svadd_x (pg, t1, r); in sv_log_inline()
221 svfloat64_t lo2 = svadd_x (pg, svsub_x (pg, t1, t2), r); in sv_log_inline()
230 svfloat64_t hi = svadd_x (pg, t2, ar2); in sv_log_inline()
231 svfloat64_t lo3 = svmls_x (pg, ar2, ar, r); in sv_log_inline()
232 svfloat64_t lo4 = svadd_x (pg, svsub_x (pg, t2, hi), ar2); in sv_log_inline()
241 svfloat64_t p = svmla_x (pg, a34, ar2, a56); in sv_log_inline()
242 p = svmla_x (pg, a12, ar2, p); in sv_log_inline()
245 pg, svadd_x (pg, svsub_x (pg, svadd_x (pg, lo1, lo2), lo3), lo4), p); in sv_log_inline()
246 svfloat64_t y = svadd_x (pg, hi, lo); in sv_log_inline()
247 *tail = svadd_x (pg, svsub_x (pg, hi, y), lo); in sv_log_inline()
252 sv_exp_core (svbool_t pg, svfloat64_t x, svfloat64_t xtail, in sv_exp_core() argument
261 svfloat64_t kd = svrinta_x (pg, z); in sv_exp_core()
262 *ki = svreinterpret_u64 (svcvt_s64_x (pg, kd)); in sv_exp_core()
270 r = svadd_x (pg, r, xtail); in sv_exp_core()
272 svuint64_t idx = svand_x (pg, *ki, N_EXP - 1); in sv_exp_core()
274 = svlsl_x (pg, svadd_x (pg, *ki, sign_bias), 52 - V_POW_EXP_TABLE_BITS); in sv_exp_core()
276 *sbits = svld1_gather_index (pg, __v_pow_exp_data.sbits, idx); in sv_exp_core()
277 *sbits = svadd_x (pg, *sbits, top); in sv_exp_core()
281 *tmp = svmla_x (pg, sv_f64 (d->exp_c0), r, *tmp); in sv_exp_core()
282 *tmp = svmla_x (pg, r, r2, *tmp); in sv_exp_core()
286 z = svmla_x (pg, scale, scale, *tmp); in sv_exp_core()
293 sv_exp_inline (svbool_t pg, svfloat64_t x, svfloat64_t xtail, in sv_exp_inline() argument
298 svuint64_t abstop = svand_x (pg, sv_top12 (x), 0x7ff); in sv_exp_inline()
300 svbool_t uoflow = svcmpge (pg, svsub_x (pg, abstop, SmallExp), ThresExp); in sv_exp_inline()
304 if (unlikely (svptest_any (pg, uoflow))) in sv_exp_inline()
307 = sv_exp_core (pg, x, xtail, sign_bias, &tmp, &sbits, &ki, d); in sv_exp_inline()
311 = svcmpge (pg, svsub_x (pg, abstop, SmallExp), 0x80000000); in sv_exp_inline()
312 uflow = svand_z (pg, uoflow, uflow); in sv_exp_inline()
314 svbool_t oflow = svcmpge (pg, abstop, HugeExp); in sv_exp_inline()
315 oflow = svand_z (pg, uoflow, svbic_z (pg, oflow, uflow)); in sv_exp_inline()
319 svbool_t special = svbic_z (pg, uoflow, svorr_z (pg, uflow, oflow)); in sv_exp_inline()
325 svbool_t x_is_neg = svcmplt (pg, x, 0); in sv_exp_inline()
327 = svlsl_x (pg, sign_bias, 52 - V_POW_EXP_TABLE_BITS); in sv_exp_inline()
331 svorr_x (pg, svreinterpret_u64 (res_uoflow), sign_mask)); in sv_exp_inline()
334 = svreinterpret_f64 (svorr_x (pg, sign_mask, 0x3ff0000000000000)); in sv_exp_inline()
341 return sv_exp_core (pg, x, xtail, sign_bias, &tmp, &sbits, &ki, d); in sv_exp_inline()
374 svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y, const svbool_t pg) in SV_NAME_D2()
385 svbool_t xisneg = svcmplt (pg, x, 0); in SV_NAME_D2()
388 svbool_t yint_or_xpos = pg; in SV_NAME_D2()
391 if (unlikely (svptest_any (pg, xisneg))) in SV_NAME_D2()