Skip to content

Commit 4cd3c37

Browse files
committed
math/aarch64: Split modf versions into separate sources.
For consistency.
1 parent f13b811 commit 4cd3c37

File tree

8 files changed

+102
-52
lines changed

8 files changed

+102
-52
lines changed

math/aarch64/advsimd/modf.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,6 @@ float64x2_t VPCS_ATTR V_NAME_D1_L1 (modf) (float64x2_t x, double *out_int)
1717
vst1q_f64 (out_int, res.val[1]);
1818
return res.val[0];
1919
}
20-
21-
float64x2x2_t VPCS_ATTR V_NAME_D1_STRET (modf) (float64x2_t x)
22-
{
23-
return v_modf_inline (x);
24-
}
25-
2620
TEST_ULP (_ZGVnN2vl8_modf_frac, 0.0)
2721
TEST_SYM_INTERVAL (_ZGVnN2vl8_modf_frac, 0, 1, 20000)
2822
TEST_SYM_INTERVAL (_ZGVnN2vl8_modf_frac, 1, inf, 20000)
@@ -31,10 +25,3 @@ TEST_ULP (_ZGVnN2vl8_modf_int, 0.0)
3125
TEST_SYM_INTERVAL (_ZGVnN2vl8_modf_int, 0, 1, 20000)
3226
TEST_SYM_INTERVAL (_ZGVnN2vl8_modf_int, 1, inf, 20000)
3327

34-
TEST_ULP (_ZGVnN2v_modf_stret_frac, 0.0)
35-
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_frac, 0, 1, 20000)
36-
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_frac, 1, inf, 20000)
37-
38-
TEST_ULP (_ZGVnN2v_modf_stret_int, 0.0)
39-
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_int, 0, 1, 20000)
40-
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_int, 1, inf, 20000)

math/aarch64/advsimd/modf_stret.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Double-precision vector modf(x, *y) function (structure-return).
3+
*
4+
* Copyright (c) 2024-2025, Arm Limited.
5+
* SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6+
*/
7+
8+
#include "v_math.h"
9+
#include "v_modf_inline.h"
10+
#include "test_sig.h"
11+
#include "test_defs.h"
12+
13+
/* Modf algorithm. Produces exact values in all rounding modes. */
14+
float64x2x2_t VPCS_ATTR V_NAME_D1_STRET (modf) (float64x2_t x)
15+
{
16+
return v_modf_inline (x);
17+
}
18+
19+
TEST_ULP (_ZGVnN2v_modf_stret_frac, 0.0)
20+
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_frac, 0, 1, 20000)
21+
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_frac, 1, inf, 20000)
22+
23+
TEST_ULP (_ZGVnN2v_modf_stret_int, 0.0)
24+
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_int, 0, 1, 20000)
25+
TEST_SYM_INTERVAL (_ZGVnN2v_modf_stret_int, 1, inf, 20000)

math/aarch64/advsimd/modff.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,10 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1_L1 (modf) (float32x4_t x,
1919
return res.val[0];
2020
}
2121

22-
float32x4x2_t VPCS_ATTR NOINLINE V_NAME_F1_STRET (modf) (float32x4_t x)
23-
{
24-
return v_modff_inline (x);
25-
}
26-
2722
TEST_ULP (_ZGVnN4vl4_modff_frac, 0.0)
2823
TEST_SYM_INTERVAL (_ZGVnN4vl4_modff_frac, 0, 1, 20000)
2924
TEST_SYM_INTERVAL (_ZGVnN4vl4_modff_frac, 1, inf, 20000)
3025

3126
TEST_ULP (_ZGVnN4vl4_modff_int, 0.0)
3227
TEST_SYM_INTERVAL (_ZGVnN4vl4_modff_int, 0, 1, 20000)
3328
TEST_SYM_INTERVAL (_ZGVnN4vl4_modff_int, 1, inf, 20000)
34-
35-
TEST_ULP (_ZGVnN4v_modff_stret_frac, 0.0)
36-
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_frac, 0, 1, 20000)
37-
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_frac, 1, inf, 20000)
38-
39-
TEST_ULP (_ZGVnN4v_modff_stret_int, 0.0)
40-
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_int, 0, 1, 20000)
41-
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_int, 1, inf, 20000)

math/aarch64/advsimd/modff_stret.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Single-precision vector modf(x, *y) function (structure-return).
3+
*
4+
* Copyright (c) 2024-2025, Arm Limited.
5+
* SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6+
*/
7+
8+
#include "v_math.h"
9+
#include "v_modff_inline.h"
10+
#include "test_sig.h"
11+
#include "test_defs.h"
12+
13+
/* Modff algorithm. Produces exact values in all rounding modes. */
14+
float32x4x2_t VPCS_ATTR NOINLINE V_NAME_F1_STRET (modf) (float32x4_t x)
15+
{
16+
return v_modff_inline (x);
17+
}
18+
19+
TEST_ULP (_ZGVnN4v_modff_stret_frac, 0.0)
20+
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_frac, 0, 1, 20000)
21+
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_frac, 1, inf, 20000)
22+
23+
TEST_ULP (_ZGVnN4v_modff_stret_int, 0.0)
24+
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_int, 0, 1, 20000)
25+
TEST_SYM_INTERVAL (_ZGVnN4v_modff_stret_int, 1, inf, 20000)

math/aarch64/sve/modf.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,11 @@ svfloat64_t SV_NAME_D1_L1 (modf) (svfloat64_t x, double *out_int,
1919
return svget2 (res, 0);
2020
}
2121

22-
svfloat64x2_t SV_NAME_D1_STRET (modf) (svfloat64_t x, svbool_t pg)
23-
{
24-
return sv_modf_inline (pg, x);
25-
}
26-
2722
TEST_ULP (_ZGVsMxvl8_modf_frac, 0.0)
2823
TEST_SYM_INTERVAL (_ZGVsMxvl8_modf_frac, 0, 1, 20000)
2924
TEST_SYM_INTERVAL (_ZGVsMxvl8_modf_frac, 1, inf, 20000)
3025

3126
TEST_ULP (_ZGVsMxvl8_modf_int, 0.0)
3227
TEST_SYM_INTERVAL (_ZGVsMxvl8_modf_int, 0, 1, 20000)
3328
TEST_SYM_INTERVAL (_ZGVsMxvl8_modf_int, 1, inf, 20000)
34-
35-
TEST_ULP (_ZGVsMxv_modf_stret_frac, 0.0)
36-
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_frac, 0, 1, 20000)
37-
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_frac, 1, inf, 20000)
38-
39-
TEST_ULP (_ZGVsMxv_modf_stret_int, 0.0)
40-
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_int, 0, 1, 20000)
41-
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_int, 1, inf, 20000)
4229
CLOSE_SVE_ATTR

math/aarch64/sve/modf_stret.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Double-precision SVE modf(x, *y) function (structure-return).
3+
*
4+
* Copyright (c) 2025, Arm Limited.
5+
* SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6+
*/
7+
8+
#include "sv_math.h"
9+
#include "sv_modf_inline.h"
10+
#include "test_sig.h"
11+
#include "test_defs.h"
12+
13+
/* Modf algorithm. Produces exact values in all rounding modes. */
14+
svfloat64x2_t SV_NAME_D1_STRET (modf) (svfloat64_t x, svbool_t pg)
15+
{
16+
return sv_modf_inline (pg, x);
17+
}
18+
19+
TEST_ULP (_ZGVsMxv_modf_stret_frac, 0.0)
20+
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_frac, 0, 1, 20000)
21+
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_frac, 1, inf, 20000)
22+
23+
TEST_ULP (_ZGVsMxv_modf_stret_int, 0.0)
24+
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_int, 0, 1, 20000)
25+
TEST_SYM_INTERVAL (_ZGVsMxv_modf_stret_int, 1, inf, 20000)
26+
CLOSE_SVE_ATTR

math/aarch64/sve/modff.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,11 @@ svfloat32_t SV_NAME_F1_L1 (modf) (svfloat32_t x, float *out_int,
1919
return svget2 (res, 0);
2020
}
2121

22-
svfloat32x2_t SV_NAME_F1_STRET (modf) (svfloat32_t x, svbool_t pg)
23-
{
24-
return sv_modff_inline (pg, x);
25-
}
26-
2722
TEST_ULP (_ZGVsMxvl4_modff_frac, 0.0)
2823
TEST_SYM_INTERVAL (_ZGVsMxvl4_modff_frac, 0, 1, 20000)
2924
TEST_SYM_INTERVAL (_ZGVsMxvl4_modff_frac, 1, inf, 20000)
3025

3126
TEST_ULP (_ZGVsMxvl4_modff_int, 0.0)
3227
TEST_SYM_INTERVAL (_ZGVsMxvl4_modff_int, 0, 1, 20000)
3328
TEST_SYM_INTERVAL (_ZGVsMxvl4_modff_int, 1, inf, 20000)
34-
35-
TEST_ULP (_ZGVsMxv_modff_stret_frac, 0.0)
36-
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_frac, 0, 1, 20000)
37-
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_frac, 1, inf, 20000)
38-
39-
TEST_ULP (_ZGVsMxv_modff_stret_int, 0.0)
40-
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_int, 0, 1, 20000)
41-
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_int, 1, inf, 20000)
4229
CLOSE_SVE_ATTR

math/aarch64/sve/modff_stret.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Single-precision SVE modff(x, *y) function (structure-return).
3+
*
4+
* Copyright (c) 2025, Arm Limited.
5+
* SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6+
*/
7+
8+
#include "sv_math.h"
9+
#include "sv_modff_inline.h"
10+
#include "test_sig.h"
11+
#include "test_defs.h"
12+
13+
/* Modff algorithm. Produces exact values in all rounding modes. */
14+
svfloat32x2_t SV_NAME_F1_STRET (modf) (svfloat32_t x, svbool_t pg)
15+
{
16+
return sv_modff_inline (pg, x);
17+
}
18+
19+
TEST_ULP (_ZGVsMxv_modff_stret_frac, 0.0)
20+
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_frac, 0, 1, 20000)
21+
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_frac, 1, inf, 20000)
22+
23+
TEST_ULP (_ZGVsMxv_modff_stret_int, 0.0)
24+
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_int, 0, 1, 20000)
25+
TEST_SYM_INTERVAL (_ZGVsMxv_modff_stret_int, 1, inf, 20000)
26+
CLOSE_SVE_ATTR

0 commit comments

Comments
 (0)