On Thu, Aug 22, 2024 at 2:06 PM Martin Storsjö <mar...@martin.st> wrote:
> On Thu, 22 Aug 2024, Ramiro Polla wrote:
>
> > ---
> > libavutil/aarch64/intreadwrite.h | 42 ++++++++++++++++++++++++++++++++
> > libavutil/intreadwrite.h         |  4 ++-
> > 2 files changed, 45 insertions(+), 1 deletion(-)
> > create mode 100644 libavutil/aarch64/intreadwrite.h
> >
> > diff --git a/libavutil/aarch64/intreadwrite.h 
> > b/libavutil/aarch64/intreadwrite.h
> > new file mode 100644
> > index 0000000000..4ce2d64987
> > --- /dev/null
> > +++ b/libavutil/aarch64/intreadwrite.h
> > @@ -0,0 +1,42 @@
> > +/*
> > + * This file is part of FFmpeg.
> > + *
> > + * FFmpeg is free software; you can redistribute it and/or
> > + * modify it under the terms of the GNU Lesser General Public
> > + * License as published by the Free Software Foundation; either
> > + * version 2.1 of the License, or (at your option) any later version.
> > + *
> > + * FFmpeg is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > + * Lesser General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU Lesser General Public
> > + * License along with FFmpeg; if not, write to the Free Software
> > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
> > 02110-1301 USA
> > + */
> > +
> > +#ifndef AVUTIL_AARCH64_INTREADWRITE_H
> > +#define AVUTIL_AARCH64_INTREADWRITE_H
> > +
> > +#if HAVE_INTRINSICS_NEON
> > +
> > +#include <arm_neon.h>
> > +
> > +#define AV_COPY128 AV_COPY128
> > +static av_always_inline void AV_COPY128(void *d, const void *s)
> > +{
> > +    uint8x16_t tmp = vld1q_u8((const uint8_t *)s);
> > +    vst1q_u8((uint8_t *)d, tmp);
> > +}
> > +
> > +#define AV_ZERO128 AV_ZERO128
> > +static av_always_inline void AV_ZERO128(void *d)
> > +{
> > +    uint8x16_t zero = vdupq_n_u8(0);
> > +    vst1q_u8((uint8_t *)d, zero);
> > +}
> > +
> > +#endif /* HAVE_INTRINSICS_NEON */
> > +
> > +#endif /* AVUTIL_AARCH64_INTREADWRITE_H */
> > diff --git a/libavutil/intreadwrite.h b/libavutil/intreadwrite.h
> > index 120bdbc8f0..ffd15a1502 100644
> > --- a/libavutil/intreadwrite.h
> > +++ b/libavutil/intreadwrite.h
> > @@ -64,7 +64,9 @@ typedef union {
> >
> > #include "config.h"
> >
> > -#if ARCH_MIPS
> > +#if ARCH_AARCH64
> > +#   include "aarch64/intreadwrite.h"
> > +#elif ARCH_MIPS
> > #   include "mips/intreadwrite.h"
> > #elif ARCH_PPC
> > #   include "ppc/intreadwrite.h"
> > --
> > 2.39.2
>
> LGTM, this seems like a valid use case for intrinsics.

Thanks. Pushed.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to