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