Skip to content

Commit 4dc2d01

Browse files
committed
ARM NEON sign_min and sign_max functions
1 parent feef3ab commit 4dc2d01

File tree

6 files changed

+316
-199
lines changed

6 files changed

+316
-199
lines changed

include/private/dsp/arch/arm/neon-d32/search/minmax.h

Lines changed: 306 additions & 191 deletions
Large diffs are not rendered by default.

src/main/arm/neon-d32.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,8 @@
365365
EXPORT1(abs_min);
366366
EXPORT1(abs_max);
367367
EXPORT1(abs_minmax);
368+
EXPORT1(sign_min);
369+
EXPORT1(sign_max);
368370

369371
EXPORT1(min_index);
370372
EXPORT1(max_index);

src/test/ptest/search/sign_max.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ namespace lsp
5454
IF_ARCH_ARM(
5555
namespace neon_d32
5656
{
57-
// float sign_max(const float *src, size_t count);
57+
float sign_max(const float *src, size_t count);
5858
}
5959
)
6060

@@ -105,7 +105,7 @@ PTEST_BEGIN("dsp.search", sign_max, 5, 1000)
105105
IF_ARCH_X86(CALL(sse::sign_max));
106106
IF_ARCH_X86(CALL(avx::sign_max));
107107
IF_ARCH_X86(CALL(avx512::sign_max));
108-
// IF_ARCH_ARM(CALL(neon_d32::sign_max));
108+
IF_ARCH_ARM(CALL(neon_d32::sign_max));
109109
// IF_ARCH_AARCH64(CALL(asimd::sign_max));
110110
PTEST_SEPARATOR;
111111
}

src/test/ptest/search/sign_min.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ namespace lsp
5454
IF_ARCH_ARM(
5555
namespace neon_d32
5656
{
57-
// float sign_min(const float *src, size_t count);
57+
float sign_min(const float *src, size_t count);
5858
}
5959
)
6060

@@ -105,7 +105,7 @@ PTEST_BEGIN("dsp.search", sign_min, 5, 1000)
105105
IF_ARCH_X86(CALL(sse::sign_min));
106106
IF_ARCH_X86(CALL(avx::sign_min));
107107
IF_ARCH_X86(CALL(avx512::sign_min));
108-
// IF_ARCH_ARM(CALL(neon_d32::sign_min));
108+
IF_ARCH_ARM(CALL(neon_d32::sign_min));
109109
// IF_ARCH_AARCH64(CALL(asimd::sign_min));
110110
PTEST_SEPARATOR;
111111
}

src/test/utest/search/sign_max.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ namespace lsp
5151
IF_ARCH_ARM(
5252
namespace neon_d32
5353
{
54-
// float sign_max(const float *src, size_t count);
54+
float sign_max(const float *src, size_t count);
5555
}
5656
)
5757

@@ -108,7 +108,7 @@ UTEST_BEGIN("dsp.search", sign_max)
108108
IF_ARCH_X86(CALL(sse::sign_max, 16));
109109
IF_ARCH_X86(CALL(avx::sign_max, 32));
110110
IF_ARCH_X86(CALL(avx512::sign_max, 64));
111-
// IF_ARCH_ARM(CALL(neon_d32::sign_max, 16));
111+
IF_ARCH_ARM(CALL(neon_d32::sign_max, 16));
112112
// IF_ARCH_AARCH64(CALL(asimd::sign_max, 16));
113113
}
114114
UTEST_END

src/test/utest/search/sign_min.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ namespace lsp
5151
IF_ARCH_ARM(
5252
namespace neon_d32
5353
{
54-
// float sign_min(const float *src, size_t count);
54+
float sign_min(const float *src, size_t count);
5555
}
5656
)
5757

@@ -108,7 +108,7 @@ UTEST_BEGIN("dsp.search", sign_min)
108108
IF_ARCH_X86(CALL(sse::sign_min, 16));
109109
IF_ARCH_X86(CALL(avx::sign_min, 32));
110110
IF_ARCH_X86(CALL(avx512::sign_min, 64));
111-
// IF_ARCH_ARM(CALL(neon_d32::sign_min, 16));
111+
IF_ARCH_ARM(CALL(neon_d32::sign_min, 16));
112112
// IF_ARCH_AARCH64(CALL(asimd::sign_min, 16));
113113
}
114114
UTEST_END

0 commit comments

Comments
 (0)