Skip to content

Commit f814f5d

Browse files
committed
Submitted AVX-optimized pmix functions
1 parent ffee91a commit f814f5d

File tree

10 files changed

+679
-16
lines changed

10 files changed

+679
-16
lines changed

include/private/dsp/arch/x86/avx/pmath/pmix.h

Lines changed: 653 additions & 0 deletions
Large diffs are not rendered by default.

src/main/x86/avx.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,11 @@
496496
EXPORT1(clamp_kk1);
497497
EXPORT1(clamp_kk2);
498498

499+
EXPORT1(pmix_v1);
500+
EXPORT1(pmix_v2);
501+
EXPORT1(pmix_k1);
502+
EXPORT1(pmix_k2);
503+
499504
// FMA3 support?
500505
if (f->features & CPU_OPTION_FMA3)
501506
{
@@ -620,6 +625,11 @@
620625

621626
CEXPORT2(favx, check_point3d_on_triangle_p3p, check_point3d_on_triangle_p3p_fma3);
622627
CEXPORT2(favx, check_point3d_on_triangle_pvp, check_point3d_on_triangle_pvp_fma3);
628+
629+
CEXPORT2(favx, pmix_v1, pmix_v1_fma3);
630+
CEXPORT2(favx, pmix_v2, pmix_v2_fma3);
631+
CEXPORT2(favx, pmix_k1, pmix_k1_fma3);
632+
CEXPORT2(favx, pmix_k2, pmix_k2_fma3);
623633
}
624634
}
625635

src/test/ptest/pmath/pmix_k1.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ PTEST_BEGIN("dsp.pmath", pmix_k1, 5, 1000)
110110

111111
CALL(generic::pmix_k1);
112112
IF_ARCH_X86(CALL(sse::pmix_k1));
113-
// IF_ARCH_X86(CALL(avx::pmix_k1));
114-
// IF_ARCH_X86(CALL(avx::pmix_k1_fma3));
113+
IF_ARCH_X86(CALL(avx::pmix_k1));
114+
IF_ARCH_X86(CALL(avx::pmix_k1_fma3));
115115
// IF_ARCH_X86(CALL(avx512::pmix_k1));
116116
// IF_ARCH_ARM(CALL(neon_d32::pmix_k1));
117117
// IF_ARCH_AARCH64(CALL(asimd::pmix_k1));

src/test/ptest/pmath/pmix_k2.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ PTEST_BEGIN("dsp.pmath", pmix_k2, 5, 1000)
110110

111111
CALL(generic::pmix_k2);
112112
IF_ARCH_X86(CALL(sse::pmix_k2));
113-
// IF_ARCH_X86(CALL(avx::pmix_k2));
114-
// IF_ARCH_X86(CALL(avx::pmix_k2_fma3));
113+
IF_ARCH_X86(CALL(avx::pmix_k2));
114+
IF_ARCH_X86(CALL(avx::pmix_k2_fma3));
115115
// IF_ARCH_X86(CALL(avx512::pmix_k2));
116116
// IF_ARCH_ARM(CALL(neon_d32::pmix_k2));
117117
// IF_ARCH_AARCH64(CALL(asimd::pmix_k2));

src/test/ptest/pmath/pmix_v1.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ PTEST_BEGIN("dsp.pmath", pmix_v1, 5, 1000)
114114

115115
CALL(generic::pmix_v1);
116116
IF_ARCH_X86(CALL(sse::pmix_v1));
117-
// IF_ARCH_X86(CALL(avx::pmix_v1));
118-
// IF_ARCH_X86(CALL(avx::pmix_v1_fma3));
117+
IF_ARCH_X86(CALL(avx::pmix_v1));
118+
IF_ARCH_X86(CALL(avx::pmix_v1_fma3));
119119
// IF_ARCH_X86(CALL(avx512::pmix_v1));
120120
// IF_ARCH_ARM(CALL(neon_d32::pmix_v1));
121121
// IF_ARCH_AARCH64(CALL(asimd::pmix_v1));

src/test/ptest/pmath/pmix_v2.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ PTEST_BEGIN("dsp.pmath", pmix_v2, 5, 1000)
112112

113113
CALL(generic::pmix_v2);
114114
IF_ARCH_X86(CALL(sse::pmix_v2));
115-
// IF_ARCH_X86(CALL(avx::pmix_v2));
116-
// IF_ARCH_X86(CALL(avx::pmix_v2_fma3));
115+
IF_ARCH_X86(CALL(avx::pmix_v2));
116+
IF_ARCH_X86(CALL(avx::pmix_v2_fma3));
117117
// IF_ARCH_X86(CALL(avx512::pmix_v2));
118118
// IF_ARCH_ARM(CALL(neon_d32::pmix_v2));
119119
// IF_ARCH_AARCH64(CALL(asimd::pmix_v2));

src/test/utest/pmath/pmix_k1.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ UTEST_BEGIN("dsp.pmath", pmix_k1)
120120
call(#func, align, generic, func)
121121

122122
IF_ARCH_X86(CALL(generic::pmix_k1, sse::pmix_k1, 16));
123-
// IF_ARCH_X86(CALL(generic::pmix_k1, avx::pmix_k1, 32));
124-
// IF_ARCH_X86(CALL(generic::pmix_k1, avx::pmix_k1_fma3, 32));
123+
IF_ARCH_X86(CALL(generic::pmix_k1, avx::pmix_k1, 32));
124+
IF_ARCH_X86(CALL(generic::pmix_k1, avx::pmix_k1_fma3, 32));
125125
// IF_ARCH_X86(CALL(generic::pmix_k1, avx512::pmix_k1, 64));
126126
// IF_ARCH_ARM(CALL(generic::pmix_k1, neon_d32::pmix_k1, 16));
127127
// IF_ARCH_AARCH64(CALL(generic::pmix_k1, asimd::pmix_k1, 16));

src/test/utest/pmath/pmix_k2.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ UTEST_BEGIN("dsp.pmath", pmix_k2)
120120
call(#func, align, generic, func)
121121

122122
IF_ARCH_X86(CALL(generic::pmix_k2, sse::pmix_k2, 16));
123-
// IF_ARCH_X86(CALL(generic::pmix_k2, avx::pmix_k2, 32));
124-
// IF_ARCH_X86(CALL(generic::pmix_k2, avx::pmix_k2_fma3, 32));
123+
IF_ARCH_X86(CALL(generic::pmix_k2, avx::pmix_k2, 32));
124+
IF_ARCH_X86(CALL(generic::pmix_k2, avx::pmix_k2_fma3, 32));
125125
// IF_ARCH_X86(CALL(generic::pmix_k2, avx512::pmix_k2, 64));
126126
// IF_ARCH_ARM(CALL(generic::pmix_k2, neon_d32::pmix_k2, 16));
127127
// IF_ARCH_AARCH64(CALL(generic::pmix_k2, asimd::pmix_k1, 16));

src/test/utest/pmath/pmix_v1.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ UTEST_BEGIN("dsp.pmath", pmix_v1)
123123
call(#func, align, generic, func)
124124

125125
IF_ARCH_X86(CALL(generic::pmix_v1, sse::pmix_v1, 16));
126-
// IF_ARCH_X86(CALL(generic::pmix_v1, avx::pmix_v1, 32));
127-
// IF_ARCH_X86(CALL(generic::pmix_v1, avx::pmix_v1_fma3, 32));
126+
IF_ARCH_X86(CALL(generic::pmix_v1, avx::pmix_v1, 32));
127+
IF_ARCH_X86(CALL(generic::pmix_v1, avx::pmix_v1_fma3, 32));
128128
// IF_ARCH_X86(CALL(generic::pmix_v1, avx512::pmix_v1, 64));
129129
// IF_ARCH_ARM(CALL(generic::pmix_v1, neon_d32::pmix_v1, 16));
130130
// IF_ARCH_AARCH64(CALL(generic::pmix_v1, asimd::pmix_v1, 16));

src/test/utest/pmath/pmix_v2.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ UTEST_BEGIN("dsp.pmath", pmix_v2)
123123
call(#func, align, generic, func)
124124

125125
IF_ARCH_X86(CALL(generic::pmix_v2, sse::pmix_v2, 16));
126-
// IF_ARCH_X86(CALL(generic::pmix_v2, avx::pmix_v2, 32));
127-
// IF_ARCH_X86(CALL(generic::pmix_v2, avx::pmix_v2_fma3, 32));
126+
IF_ARCH_X86(CALL(generic::pmix_v2, avx::pmix_v2, 32));
127+
IF_ARCH_X86(CALL(generic::pmix_v2, avx::pmix_v2_fma3, 32));
128128
// IF_ARCH_X86(CALL(generic::pmix_v2, avx512::pmix_v2, 64));
129129
// IF_ARCH_ARM(CALL(generic::pmix_v2, neon_d32::pmix_v2, 16));
130130
// IF_ARCH_AARCH64(CALL(generic::pmix_v2, asimd::pmix_v2, 16));

0 commit comments

Comments
 (0)