xref: /aosp_15_r20/external/arm-optimized-routines/math/aarch64/v_pow.c (revision 412f47f9e737e10ed5cc46ec6a8d7fa2264f8a14)
1*412f47f9SXin Li /*
2*412f47f9SXin Li  * Double-precision vector pow function.
3*412f47f9SXin Li  *
4*412f47f9SXin Li  * Copyright (c) 2020-2023, Arm Limited.
5*412f47f9SXin Li  * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6*412f47f9SXin Li  */
7*412f47f9SXin Li 
8*412f47f9SXin Li #include "mathlib.h"
9*412f47f9SXin Li #include "v_math.h"
10*412f47f9SXin Li 
V_NAME_D2(pow)11*412f47f9SXin Li float64x2_t VPCS_ATTR V_NAME_D2 (pow) (float64x2_t x, float64x2_t y)
12*412f47f9SXin Li {
13*412f47f9SXin Li   float64x2_t z;
14*412f47f9SXin Li   for (int lane = 0; lane < v_lanes64 (); lane++)
15*412f47f9SXin Li     {
16*412f47f9SXin Li       double sx = x[lane];
17*412f47f9SXin Li       double sy = y[lane];
18*412f47f9SXin Li       double sz = pow (sx, sy);
19*412f47f9SXin Li       z[lane] = sz;
20*412f47f9SXin Li     }
21*412f47f9SXin Li   return z;
22*412f47f9SXin Li }
23