Displaying 20 results from an estimated 50 matches for "opus_arm_presume_neon_intr".
2015 Dec 08
2
[Aarch64 v2 02/18] Reorganize ARM CPU #ifdefs.
...opus_val16 *, opus_val32 *, int , int) = {
Maybe I'm missing something, but...
> -/*Is run-time CPU detection enabled on this platform?*/
> -# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_ASM) \
> - || (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) \
> - && !defined(OPUS_ARM_PRESUME_NEON_INTR)))
> +# if defined(OPUS_HAVE_RTCD) && \
> + (defined(FIXED_POINT) && \
> + ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \
> + (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \
> + (defined(OPUS...
2015 May 15
0
[RFC V3 4/8] aarch64: Enable intrinsics for aarch64
...pitch_xcorr_edsp(const opus_val16 *_x, const opus_val16 *_y,
#if defined(OPUS_ARM_MAY_HAVE_NEON_INTR)
void celt_pitch_xcorr_float_neon(const opus_val16 *_x, const opus_val16 *_y,
opus_val32 *xcorr, int len, int max_pitch);
-#if !defined(OPUS_HAVE_RTCD) || defined(OPUS_ARM_PRESUME_NEON_INTR)
+#if defined(OPUS_ARM_PRESUME_NEON_INTR)
#define OVERRIDE_PITCH_XCORR (1)
# define celt_pitch_xcorr(_x, _y, xcorr, len, max_pitch, arch) \
((void)(arch),celt_pitch_xcorr_float_neon(_x, _y, xcorr, len, max_pitch))
diff --git a/celt/dump_modes/Makefile b/celt/dump_modes/Makefile
index 10c367...
2015 Nov 19
0
[PATCH] Clean up formatting of configure output for ARM intrinsics detection.
...N_INTR], 1, [Compiler supports ARMv7/Aarch64 Neon Intrinsics])
- intrinsics_support="$intrinsics_support (Neon_Intrinsics)"
+ intrinsics_support="$intrinsics_support (NEON)"
- AS_IF([test x"enable_rtcd" != x"" && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"],
- [rtcd_support="$rtcd_support (Neon_Intrinsics)"])
+ AS_IF([test x"$enable_rtcd" != x"" && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"],
+ [AS_IF([test x"$rtcd_support" = "no&quo...
2015 Nov 21
0
[Aarch64 v2 08/18] Add Neon fixed-point implementation of xcorr_kernel.
...map.c
+++ b/celt/arm/arm_celt_map.c
@@ -58,6 +58,23 @@ void (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *,
# endif
# endif /* FIXED_POINT */
+#if defined(FIXED_POINT) && defined(OPUS_HAVE_RTCD) && \
+ defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)
+
+void (*const XCORR_KERNEL_IMPL[OPUS_ARCHMASK + 1])(
+ const opus_val16 *x,
+ const opus_val16 *y,
+ opus_val32 sum[4],
+ int len
+) = {
+ xcorr_kernel_c, /* ARMv4 */
+ xcorr_kernel_c, /* EDSP */
+ xcorr_kernel_c...
2015 Nov 21
12
[Aarch64 v2 00/18] Patches to enable Aarch64 (version 2)
As promised, here's a re-send of all my Aarch64 patches, following
comments by John Ridges.
Note that they actually affect more than just Aarch64 -- other than
the ones specifically guarded by AARCH64_NEON defines, the Neon
intrinsics all also apply on armv7; and the OPUS_FAST_INT64 patches
apply on any 64-bit machine.
The patches should largely be independent and independently useful,
other
2018 Aug 31
1
NEON detection under iOs
...d functions are called directly under iOS.
Regards,
Victor
-----Original Message-----
From: Jonathan Lennox
Sent: Thursday, August 30, 2018 11:59 AM
To: Victor Cherepanov
Cc: opus at xiph.org
Subject: Re: [opus] NEON detection under iOs
On iOS, configure should define OPUS_ARM_PRESUME_NEON and
OPUS_ARM_PRESUME_NEON_INTR if you’re building for armv7, and
OPUS_ARM_PRESUME_NEON_INTR for arm64 (since every Apple armv7 CPU has
supported Neon, and of course arm64 supports it though the assembler syntax
is different).
This should be slightly faster than using RTCD, since the Neon functions can
be direct calls instea...
2018 May 24
2
NEON detection under iOs
Hi,
Thank you for a great work. Opus codec works great under many platforms.
I have found a small performance issue under iOS platform.
If the macro OPUS_HAVE_RTCD is not set, then encoder doesn't use some _neon
functions at low bitrates (up to 64k). If the macro is set, then the
compiler hits the error at opus/celt/arm/armcpu.c:153 (a function for
detection missed). Being compared to Android
2015 Aug 05
0
[PATCH 2/8] Reorganize pitch_arm.h, so RTCD works for intrinsics functions as well.
.../* ARMv4 */
@@ -104,8 +109,23 @@ opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *,
MAY_HAVE_MEDIA(celt_pitch_xcorr), /* Media */
MAY_HAVE_NEON(celt_pitch_xcorr) /* NEON */
};
+
+#endif
+
+#elif defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)
+
+opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *,
+ const opus_val16 *, opus_val32 *, int, int) = {
+ celt_pitch_xcorr_c, /* ARMv4 */
+ celt_pitch_xcorr_c, /* EDSP */
+ celt_pitch_xcorr_c, /* Media */
+ celt_pitch_xcorr_...
2015 Nov 21
8
[Aarch64 v2 10/18] Clean up some intrinsics-related wording in configure.
...s ARMv7 Neon Intrinsics])
+ AC_DEFINE([OPUS_ARM_MAY_HAVE_NEON_INTR], 1, [Compiler supports ARMv7/Aarch64 Neon Intrinsics])
intrinsics_support="$intrinsics_support (Neon_Intrinsics)"
AS_IF([test x"enable_rtcd" != x"" && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"],
- [rtcd_support="$rtcd_support (ARMv7_Neon_Intrinsics)"])
+ [rtcd_support="$rtcd_support (Neon_Intrinsics)"])
AS_IF([test x"$OPUS_ARM_PRESUME_NEON_INTR" = x"1"],
[AC_DEFINE([OPUS_ARM_PRE...
2015 Nov 10
1
[PATCH 1/2] Enable intrinsics by default.
---
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index f267ef7..606511b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -190,8 +190,8 @@ AC_ARG_ENABLE([rtcd],
[enable_rtcd=yes])
AC_ARG_ENABLE([intrinsics],
- [AS_HELP_STRING([--enable-intrinsics], [Enable intrinsics optimizations for ARM(float) X86(fixed)])],,
-
2015 Nov 21
0
[Aarch64 v2 10/18] Clean up some intrinsics-related wording in configure.
...s ARMv7 Neon Intrinsics])
+ AC_DEFINE([OPUS_ARM_MAY_HAVE_NEON_INTR], 1, [Compiler supports ARMv7/Aarch64 Neon Intrinsics])
intrinsics_support="$intrinsics_support (Neon_Intrinsics)"
AS_IF([test x"enable_rtcd" != x"" && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"],
- [rtcd_support="$rtcd_support (ARMv7_Neon_Intrinsics)"])
+ [rtcd_support="$rtcd_support (Neon_Intrinsics)"])
AS_IF([test x"$OPUS_ARM_PRESUME_NEON_INTR" = x"1"],
[AC_DEFINE([OPUS_ARM_PRE...
2017 May 31
4
Opus floating-point NEON jump table question
...ef OPUS_ARM_INLINE_NEON */
/* #undef OPUS_ARM_MAY_HAVE_EDSP */
/* #undef OPUS_ARM_MAY_HAVE_MEDIA */
/* #undef OPUS_ARM_MAY_HAVE_NEON */
/* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */
/* #undef OPUS_ARM_PRESUME_EDSP */
/* #undef OPUS_ARM_PRESUME_MEDIA */
/* #undef OPUS_ARM_PRESUME_NEON */
/* #undef OPUS_ARM_PRESUME_NEON_INTR */
So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually
fall down to C functions in the jump table:
# define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name)
Therefore all NEON intrinsics optimizations in their jump tables won't get
called for floating-point.
Am I missing some o...
2016 Sep 13
4
[PATCH 12/15] Replace call of celt_inner_prod_c() (step 1)
Should call celt_inner_prod().
---
celt/bands.c | 7 ++++---
celt/bands.h | 2 +-
celt/celt_encoder.c | 6 +++---
celt/pitch.c | 2 +-
src/opus_multistream_encoder.c | 2 +-
5 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/celt/bands.c b/celt/bands.c
index bbe8a4c..1ab24aa 100644
--- a/celt/bands.c
+++ b/celt/bands.c
2015 Nov 07
12
[Aarch64 00/11] Patches to enable Aarch64 (arm64) optimizations, rebased to current master.
Here are my aarch64 patches rebased to the current tip of Opus master.
They're largely the same as my previous patch set, with the addition
of the final one (the Neon fixed-point implementation of
xcorr_kernel). This replaces Viswanath's Neon fixed-point
celt_pitch_xcorr, since xcorr_kernel is used in celt_fir and celt_iir
as well.
These have been tested for correctness under qemu
2015 Nov 21
0
[Aarch64 v2 02/18] Reorganize ARM CPU #ifdefs.
...elt_pitch_xcorr_float_neon(const opus_val16 *_x, const opus_val16 *_y,
#endif /* end !FIXED_POINT */
-/*Is run-time CPU detection enabled on this platform?*/
-# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_ASM) \
- || (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) \
- && !defined(OPUS_ARM_PRESUME_NEON_INTR)))
+# if defined(OPUS_HAVE_RTCD) && \
+ (defined(FIXED_POINT) && \
+ ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \
+ (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \
+ (defined(OPUS_ARM_MAY_HAVE_EDSP) &...
2015 Dec 10
0
[Aarch64 v2 02/18] Reorganize ARM CPU #ifdefs.
...t , int) = {
>
> Maybe I'm missing something, but...
>
>> -/*Is run-time CPU detection enabled on this platform?*/
>> -# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_ASM) \
>> - || (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) \
>> - && !defined(OPUS_ARM_PRESUME_NEON_INTR)))
>> +# if defined(OPUS_HAVE_RTCD) && \
>> + (defined(FIXED_POINT) && \
>> + ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \
>> + (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \
>&g...
2018 Aug 30
0
NEON detection under iOs
On iOS, configure should define OPUS_ARM_PRESUME_NEON and OPUS_ARM_PRESUME_NEON_INTR if you’re building for armv7, and OPUS_ARM_PRESUME_NEON_INTR for arm64 (since every Apple armv7 CPU has supported Neon, and of course arm64 supports it though the assembler syntax is different).
This should be slightly faster than using RTCD, since the Neon functions can be direct calls instead of...
2015 Dec 23
6
[AArch64 neon intrinsics v4 0/5] Rework Neon intrinsic code for Aarch64 patchset
Following Tim's comments, here are my reworked patches for the Neon intrinsic function patches of
of my Aarch64 patchset, i.e. replacing patches 5-8 of the v2 series. Patches 1-4 and 9-18 of the
old series still apply unmodified.
The one new (as opposed to changed) patch is the first one in this series, to add named constants
for the ARM architecture variants.
There are also some minor code
2017 Jun 01
2
Opus floating-point NEON jump table question
...f OPUS_ARM_MAY_HAVE_EDSP */
> /* #undef OPUS_ARM_MAY_HAVE_MEDIA */
> /* #undef OPUS_ARM_MAY_HAVE_NEON */
> /* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */
> /* #undef OPUS_ARM_PRESUME_EDSP */
> /* #undef OPUS_ARM_PRESUME_MEDIA */
> /* #undef OPUS_ARM_PRESUME_NEON */
> /* #undef OPUS_ARM_PRESUME_NEON_INTR */
>
> So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually
> fall down to C functions in the jump table:
> # define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name)
>
> Therefore all NEON intrinsics optimizations in their jump tables won't get
> called for flo...
2016 May 31
2
[PATCH 1/2] Modify autoconf tests for intrinsics to stop clang from optimizing them away.
...= x"yes"],[
[[
static float32x4_t A0, A1, SUMM;
SUMM = vmlaq_f32(SUMM, A0, A1);
+ return (int)vgetq_lane_f32(SUMM, 0);
]]
)
AS_IF([test x"$OPUS_ARM_MAY_HAVE_NEON_INTR" = x"1" && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"],
@@ -521,10 +522,13 @@ AS_IF([test x"$enable_intrinsics" = x"yes"],[
[OPUS_X86_MAY_HAVE_SSE],
[OPUS_X86_PRESUME_SSE],
[[#include <xmmintrin.h>
+ #include <time.h>
]],
[[
-...