This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 5778cbb11fe00d30d2d9cb4e666a60eec1961257
Author:     Ramiro Polla <[email protected]>
AuthorDate: Thu Jun 11 22:04:58 2026 +0200
Commit:     Ramiro Polla <[email protected]>
CommitDate: Sun Jul 19 15:07:02 2026 +0200

    swscale/aarch64/ops: remove overly-complicated generated lookup function
    
    ... and replace it by a simple linear lookup over ops_entries.
    
    The previous approach was faster, but for an init function this hardly
    matters.
    
    Sponsored-by: Sovereign Tech Fund
    Signed-off-by: Ramiro Polla <[email protected]>
---
 libswscale/aarch64/Makefile        |   8 +-
 libswscale/aarch64/ops.c           |  28 +-
 libswscale/aarch64/ops_asmgen.c    | 166 +-------
 libswscale/aarch64/ops_entries.c   | 818 ++++++++++++++++++-------------------
 libswscale/aarch64/ops_impl.c      |   4 +-
 libswscale/aarch64/ops_lookup.h    |  30 --
 libswscale/tests/sws_ops_aarch64.c |  20 +-
 7 files changed, 471 insertions(+), 603 deletions(-)

diff --git a/libswscale/aarch64/Makefile b/libswscale/aarch64/Makefile
index 0cbdb1b76e..e311f5446a 100644
--- a/libswscale/aarch64/Makefile
+++ b/libswscale/aarch64/Makefile
@@ -13,15 +13,9 @@ NEON-OBJS   += aarch64/hscale.o                 \
 
 NEON-OBJS-$(CONFIG_UNSTABLE) += aarch64/ops.o
 NEON-OBJS-$(CONFIG_UNSTABLE) += aarch64/ops_neon.gen.o
-NEON-OBJS-$(CONFIG_UNSTABLE) += aarch64/ops_lookup.gen.o
 
 $(SUBDIR)aarch64/ops_neon.gen.S: $(SUBDIR)aarch64/ops_asmgen$(HOSTEXESUF)
-       $(M)$< -ops > [email protected]
-       $(CP) [email protected] $@
-       $(RM) [email protected]
-
-$(SUBDIR)aarch64/ops_lookup.gen.c: $(SUBDIR)aarch64/ops_asmgen$(HOSTEXESUF)
-       $(M)$< -lookup > [email protected]
+       $(M)$< > [email protected]
        $(CP) [email protected] $@
        $(RM) [email protected]
 
diff --git a/libswscale/aarch64/ops.c b/libswscale/aarch64/ops.c
index ab2adc37eb..71c0c38b06 100644
--- a/libswscale/aarch64/ops.c
+++ b/libswscale/aarch64/ops.c
@@ -24,8 +24,6 @@
 #include "libavutil/avstring.h"
 #include "libavutil/tree.h"
 
-#include "ops_lookup.h"
-
 #include "ops_impl_conv.c"
 
 /**
@@ -42,6 +40,30 @@ static_assert(offsetof_exec_out_bump == offsetof(SwsOpExec, 
out_bump), "SwsOpExe
 static_assert(offsetof_impl_cont     == offsetof(SwsOpImpl, cont),     
"SwsOpImpl layout mismatch");
 static_assert(offsetof_impl_priv     == offsetof(SwsOpImpl, priv),     
"SwsOpImpl layout mismatch");
 
+/*********************************************************************/
+/* Forward-declare exported functions. */
+#define ENTRY(fname, ...) extern void fname(void);
+#include "ops_entries.c"
+#undef ENTRY
+
+static const struct {
+    void (*func)(void);
+    SwsAArch64OpImplParams params;
+} ops_entries[] = {
+#define ENTRY(fname, ...) { .func = fname, .params = __VA_ARGS__ },
+#include "ops_entries.c"
+#undef ENTRY
+};
+
+/* Look up the exported function pointer for the given parameters. */
+static SwsFuncPtr aarch64_lookup(const SwsAArch64OpImplParams *p)
+{
+    for (int i = 0; i < FF_ARRAY_ELEMS(ops_entries); i++)
+        if (!memcmp(p, &ops_entries[i].params, sizeof(SwsAArch64OpImplParams)))
+            return ops_entries[i].func;
+    return NULL;
+}
+
 /*********************************************************************/
 static int aarch64_setup_linear(const SwsAArch64OpImplParams *p,
                                 const SwsOp *op, SwsImplResult *res)
@@ -199,7 +221,7 @@ static int aarch64_compile(SwsContext *ctx, const SwsOpList 
*ops,
         ret = convert_to_aarch64_impl(ctx, ops, i, block_size, &params);
         if (ret < 0)
             goto error;
-        SwsFuncPtr func = ff_sws_aarch64_lookup(&params);
+        SwsFuncPtr func = aarch64_lookup(&params);
         if (!func) {
             ret = AVERROR(ENOTSUP);
             goto error;
diff --git a/libswscale/aarch64/ops_asmgen.c b/libswscale/aarch64/ops_asmgen.c
index 1dfc0060e5..e20424107a 100644
--- a/libswscale/aarch64/ops_asmgen.c
+++ b/libswscale/aarch64/ops_asmgen.c
@@ -95,7 +95,7 @@ static void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, 
size_t elem_size,
 /*********************************************************************/
 #include "rasm.c"
 #include "rasm_print.c"
-#include "ops_impl.c"
+#include "ops_impl.h"
 
 /**
  * Implementation parameters for all exported functions. This list is
@@ -104,9 +104,16 @@ static void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, 
size_t elem_size,
  * by running:
  *   make fate-sws-ops-entries-aarch64 GEN=1
  */
-static const SwsAArch64OpImplParams impl_params[] = {
+typedef struct SwsAArch64OpEntry {
+    const char *name;
+    SwsAArch64OpImplParams params;
+} SwsAArch64OpEntry;
+
+static const SwsAArch64OpEntry ops_entries[] = {
+#define ENTRY(fname, ...) { .name = #fname, .params = __VA_ARGS__ },
 #include "ops_entries.c"
-    { .op = AARCH64_SWS_OP_NONE }
+#undef ENTRY
+    { NULL }
 };
 
 /*********************************************************************/
@@ -124,24 +131,6 @@ static size_t aarch64_pixel_size(SwsAArch64PixelType fmt)
     return 0;
 }
 
-static void impl_func_name(char **buf, size_t *size, const 
SwsAArch64OpImplParams *params)
-{
-    buf_appendf(buf, size, "ff_sws");
-    const ParamField **fields = op_fields[params->op];
-    for (int i = 0; fields[i]; i++) {
-        const ParamField *field = fields[i];
-        void *p = (void *) (((uintptr_t) params) + field->offset);
-        field->print_str(buf, size, p);
-    }
-    buf_appendf(buf, size, "_neon");
-}
-
-void aarch64_op_impl_func_name(char *buf, size_t size, const 
SwsAArch64OpImplParams *params)
-{
-    impl_func_name(&buf, &size, params);
-    av_assert0(size && "string buffer exhausted");
-}
-
 /*********************************************************************/
 typedef struct SwsAArch64Context {
     RasmContext *rctx;
@@ -1340,8 +1329,9 @@ static void asmgen_op_dither(SwsAArch64Context *s, const 
SwsAArch64OpImplParams
 }
 
 /*********************************************************************/
-static void asmgen_op_cps(SwsAArch64Context *s, const SwsAArch64OpImplParams 
*p)
+static void asmgen_op_cps(SwsAArch64Context *s, const SwsAArch64OpEntry *entry)
 {
+    const SwsAArch64OpImplParams *p = &entry->params;
     RasmContext *r = s->rctx;
 
     bool is_read = false;
@@ -1363,9 +1353,7 @@ static void asmgen_op_cps(SwsAArch64Context *s, const 
SwsAArch64OpImplParams *p)
         break;
     }
 
-    char func_name[128];
-    aarch64_op_impl_func_name(func_name, sizeof(func_name), p);
-    rasm_func_begin(r, func_name, true, !is_read);
+    rasm_func_begin(r, entry->name, true, !is_read);
 
     /**
      * Set up vector register dimensions and reshape all vectors
@@ -1432,112 +1420,6 @@ static void asmgen_op_cps(SwsAArch64Context *s, const 
SwsAArch64OpImplParams *p)
     }
 }
 
-/*********************************************************************/
-static void aarch64_op_impl_lookup_str(char *buf, size_t size, const 
SwsAArch64OpImplParams *params,
-                                       const SwsAArch64OpImplParams *prev, 
const char *p_str)
-{
-    int first_diff = 0;
-    int prev_levels = 0;
-    int levels = 0;
-
-    /* Compute number of current levels. */
-    if (params) {
-        const ParamField **fields = op_fields[params->op];
-        while (fields[levels])
-            levels++;
-    }
-
-    /* Compute number of previous levels. */
-    if (prev) {
-        const ParamField **prev_fields = op_fields[prev->op];
-        while (prev_fields[prev_levels])
-            prev_levels++;
-    }
-
-    /* Walk up and check the conditions that match. */
-    if (params && prev) {
-        const ParamField **fields = op_fields[params->op];
-        first_diff = -1;
-        for (int i = 0; fields[i]; i++) {
-            const ParamField *field = fields[i];
-            if (first_diff < 0) {
-                int diff = field->cmp_val((void  *) (((uintptr_t) params) + 
field->offset),
-                                          (void  *) (((uintptr_t) prev) + 
field->offset));
-                if (diff)
-                    first_diff = i;
-            }
-        }
-    }
-
-    /* Walk back closing conditions. */
-    if (prev) {
-        for (int i = prev_levels - 1; i > first_diff; i--) {
-            buf_appendf(&buf, &size, "%*sreturn NULL;\n", 4 * (i + 1), "");
-            buf_appendf(&buf, &size, "%*s}\n", 4 * i, "");
-        }
-    }
-
-    /* Walk up adding conditions to return current function. */
-    if (params) {
-        const ParamField **fields = op_fields[params->op];
-        for (int i = first_diff; i < levels; i++) {
-            const ParamField *field = fields[i];
-            void *p = (void *) (((uintptr_t) params) + field->offset);
-            buf_appendf(&buf, &size, "%*sif (%s%s == ", 4 * (i + 1), "", 
p_str, field->name);
-            field->print_val(&buf, &size, p);
-            buf_appendf(&buf, &size, ")");
-            if (i == (levels - 1)) {
-                buf_appendf(&buf, &size, " return ");
-                impl_func_name(&buf, &size, params);
-                buf_appendf(&buf, &size, ";\n");
-            } else {
-                buf_appendf(&buf, &size, " {\n");
-            }
-        }
-    }
-
-    av_assert0(size && "string buffer exhausted");
-}
-
-static int lookup_gen(void)
-{
-    char buf[1024];
-
-    /**
-     * The lookup function matches the SwsAArch64OpImplParams from
-     * ops_entries.c to the exported functions generated by asmgen_op().
-     * Each call to aarch64_op_impl_lookup_str() generates a code
-     * fragment to uniquely detect the current function, opening and/or
-     * closing conditions depending on the parameters of the previous
-     * function.
-     */
-
-    /* External function declarations. */
-    printf("#include \"libswscale/aarch64/ops_lookup.h\"\n");
-    printf("\n");
-    for (const SwsAArch64OpImplParams *p = impl_params; p->op; p++) {
-        aarch64_op_impl_func_name(buf, sizeof(buf), p);
-        printf("extern void %s(void);\n", buf);
-    }
-    printf("\n");
-
-    /* Lookup function. */
-    printf("SwsFuncPtr ff_sws_aarch64_lookup(const SwsAArch64OpImplParams 
*p)\n");
-    printf("{\n");
-    const SwsAArch64OpImplParams *prev = NULL;
-    for (const SwsAArch64OpImplParams *p = impl_params; p->op; p++) {
-        aarch64_op_impl_lookup_str(buf, sizeof(buf), p, prev, "p->");
-        printf("%s", buf);
-        prev = p;
-    }
-    aarch64_op_impl_lookup_str(buf, sizeof(buf), NULL, prev, "p->");
-    printf("%s", buf);
-    printf("    return NULL;\n");
-    printf("}\n");
-
-    return 0;
-}
-
 /*********************************************************************/
 
 /* Generate all functions described by ops_entries.c */
@@ -1633,9 +1515,9 @@ static int asmgen(void)
     asmgen_process(&s, 0x1111);
 
     /* Generate all functions from ops_entries.c using rasm. */
-    const SwsAArch64OpImplParams *params = impl_params;
-    while (params->op) {
-        asmgen_op_cps(&s, params++);
+    const SwsAArch64OpEntry *entries = ops_entries;
+    while (entries->name) {
+        asmgen_op_cps(&s, entries++);
         if (rctx->error) {
             ret = rctx->error;
             goto error;
@@ -1659,23 +1541,9 @@ error:
 /*********************************************************************/
 int main(int argc, char *argv[])
 {
-    bool lookup = false;
-    bool ops = false;
-
 #ifdef _WIN32
     _setmode(_fileno(stdout), _O_BINARY);
 #endif
 
-    for (int i = 1; i < argc; i++) {
-        if (!strcmp(argv[i], "-ops"))
-            ops = true;
-        else if (!strcmp(argv[i], "-lookup"))
-            lookup = true;
-    }
-    if ((lookup && ops) || (!lookup && !ops)) {
-        fprintf(stderr, "Exactly one of -ops or -lookup must be specified.\n");
-        return -1;
-    }
-
-    return lookup ? lookup_gen() : asmgen();
+    return asmgen();
 }
diff --git a/libswscale/aarch64/ops_entries.c b/libswscale/aarch64/ops_entries.c
index 9c4e103007..92b3b646c1 100644
--- a/libswscale/aarch64/ops_entries.c
+++ b/libswscale/aarch64/ops_entries.c
@@ -3,412 +3,412 @@
  * To regenerate, run: make fate-sws-ops-entries-aarch64 GEN=1
  */
 
-{ .op = AARCH64_SWS_OP_READ_BIT, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_BIT, .block_size = 16, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_NIBBLE, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_NIBBLE, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_READ_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_BIT, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_NIBBLE, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_NIBBLE, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_SWAP_BYTES, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000001ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000002ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000003ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000003ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000003ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000010ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000010ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000010ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000013ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000013ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000013ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000020ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0100 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000020ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0100 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000030ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000030ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000030ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000031ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000130ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000310ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000310ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000000320ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000001031ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000001301ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000002032ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1100 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000002032ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1100 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000002302ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000002302ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000102132ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000102132ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000102132ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000132102ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000001f01f0ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000001f01f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000001f01f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000201231ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000201231ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000231201ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000231201ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x000000231201ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f02f0ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f02f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f02f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f12f1ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f12f1ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f12f1ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000003f13f1ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000003f13f1ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x0000003f13f1ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1010 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00001f2102f0ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00001f2102f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00001f2102f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f1201f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f1201f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f103ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f103ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f103ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f130ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f130ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f130ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f3203f0ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00002f3203f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00003f2302f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00003f2312f1ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x00003f2312f1ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x001f213203f0ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x001f213203f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x001f213203f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x002f123103f0ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x002f123103f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x003f231201f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x003f231201f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x2f12f13f03f0ULL, .block_size = 8, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x2f12f13f03f0ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PERMUTE, .move = 0x2f12f13f03f0ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000002010ULL, .block_size = 8, .type 
= AARCH64_PIXEL_U8, .mask = 0x0110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000002010ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x0110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000002010ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x0110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000103120ULL, .block_size = 8, .type 
= AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000103120ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000103120ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000302010ULL, .block_size = 8, .type 
= AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000302010ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x000000302010ULL, .block_size = 32, 
.type = AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x001f01f03020ULL, .block_size = 8, .type 
= AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_COPY, .move = 0x001f01f03020ULL, .block_size = 16, 
.type = AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0121, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0121, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0233, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0233, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0332, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0332, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0444, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0444, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0555, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0555, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0565, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x0565, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x2aaa, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0x2aaa, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0xaaa2, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0100 },
-{ .op = AARCH64_SWS_OP_UNPACK, .pack = 0xaaa2, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0121, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0121, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0233, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0233, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0332, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0332, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0444, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0444, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0555, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0555, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0565, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x0565, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0x2aaa, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_PACK, .pack = 0xaaa2, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 1, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 1, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 1, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 2, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 2, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 2, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 2, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 2, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 3, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 4, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 4, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 4, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 4, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 4, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 4, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 5, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 6, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 6, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 6, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 6, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 6, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 6, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 7, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 8, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LSHIFT, .shift = 8, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_RSHIFT, .shift = 4, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_RSHIFT, .shift = 4, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_RSHIFT, .shift = 4, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_RSHIFT, .shift = 4, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_RSHIFT, .shift = 6, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_RSHIFT, .shift = 6, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_RSHIFT, .shift = 6, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x0fff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x0fff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1011 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x0fff, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x0fff, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x0fff, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x0fff, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x1fff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x1fff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1011 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x1fff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x1fff, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x1fff, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0x1fff, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xff1f, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xff1f, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xff1f, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xff1f, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff0, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff0, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xfff1, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1100 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U16, .mask = 0x1100 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1010 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1011 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 8, .type = 
AARCH64_PIXEL_U32, .mask = 0x1101 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0110 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_CLEAR, .clear = 0xffff, .block_size = 16, .type = 
AARCH64_PIXEL_U16, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_TO_U8, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_U8, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_TO_U8, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U8, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_TO_U8, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_TO_U8, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_TO_U8, .block_size = 16, .type = AARCH64_PIXEL_U16, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 16, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 16, .type = AARCH64_PIXEL_U8, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U16, .block_size = 16, .type = AARCH64_PIXEL_U8, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_TO_U32, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0100 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x1010 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x1100 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U8, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U16, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0100 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_TO_F32, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_EXPAND_PAIR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_EXPAND_PAIR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_EXPAND_PAIR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_EXPAND_PAIR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_EXPAND_PAIR, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_MIN, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x0001 },
-{ .op = AARCH64_SWS_OP_MIN, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x0011 },
-{ .op = AARCH64_SWS_OP_MIN, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x0111 },
-{ .op = AARCH64_SWS_OP_MIN, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x1001 },
-{ .op = AARCH64_SWS_OP_MIN, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x1110 },
-{ .op = AARCH64_SWS_OP_MIN, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x1111 },
-{ .op = AARCH64_SWS_OP_MAX, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x0001 },
-{ .op = AARCH64_SWS_OP_MAX, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x0011 },
-{ .op = AARCH64_SWS_OP_MAX, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x0111 },
-{ .op = AARCH64_SWS_OP_MAX, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x1001 },
-{ .op = AARCH64_SWS_OP_MAX, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask 
= 0x1111 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 8, .type = AARCH64_PIXEL_U32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 16, .type = AARCH64_PIXEL_U8, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 16, .type = AARCH64_PIXEL_U8, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 16, .type = AARCH64_PIXEL_U16, 
.mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_SCALE, .block_size = 16, .type = AARCH64_PIXEL_U16, 
.mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x000000000fULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x00000000fcULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x00000000ffULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x000000c000ULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x000373dcc7ULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x0003f3fccfULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x000c00c00cULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x000c30cc0fULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x000ff3fcfcULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0x000ff3fcffULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0xc000000000ULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0xc00000000fULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0xc0000000fcULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0xc003f3fccfULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0xc00c00c00cULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_LINEAR, .linear.mask = 0xc00ff3fcffULL, .block_size = 
8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000000000fULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x00000000fcULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x00000000ffULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000000c000ULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000373dcc7ULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x0003f3fccfULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000c00c00cULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000c30cc0fULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000ff3fcfcULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000ff3fcffULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc000000000ULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc00000000fULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc0000000fcULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc003f3fccfULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc00c00c00cULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc00ff3fcffULL, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x0325, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x032f, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x2305, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x230f, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x3000, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x302f, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1110 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x3ff0, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x5023, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x5032, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x5230, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x5ff0, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0x5fff, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1000 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xf023, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xf032, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xf203, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xf230, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xf2f0, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0101 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xf2ff, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0100 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xf302, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xff30, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0011 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xff3f, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0010 },
-{ .op = AARCH64_SWS_OP_DITHER, .dither.y_offset = 0xfff0, .dither.size_log2 = 
4, .block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 },
+ENTRY(ff_sws_read_bit_8_u8_0001_neon, { .op = AARCH64_SWS_OP_READ_BIT, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_read_bit_16_u8_0001_neon, { .op = AARCH64_SWS_OP_READ_BIT, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_read_nibble_8_u8_0001_neon, { .op = AARCH64_SWS_OP_READ_NIBBLE, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_read_nibble_16_u8_0001_neon, { .op = AARCH64_SWS_OP_READ_NIBBLE, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_read_packed_8_u8_0011_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_read_packed_8_u8_0111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_read_packed_8_u8_1111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_read_packed_8_u16_0011_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0011 })
+ENTRY(ff_sws_read_packed_8_u16_0111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_read_packed_8_u16_1111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1111 })
+ENTRY(ff_sws_read_packed_8_u32_0011_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0011 })
+ENTRY(ff_sws_read_packed_8_u32_0111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_read_packed_8_u32_1111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1111 })
+ENTRY(ff_sws_read_packed_16_u8_0011_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_read_packed_16_u8_0111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_read_packed_16_u8_1111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_read_packed_16_u16_0011_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0011 })
+ENTRY(ff_sws_read_packed_16_u16_0111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_read_packed_16_u16_1111_neon, { .op = AARCH64_SWS_OP_READ_PACKED, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1111 })
+ENTRY(ff_sws_read_planar_8_u8_0001_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_read_planar_8_u8_0011_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_read_planar_8_u8_0111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_read_planar_8_u8_1111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_read_planar_8_u16_0001_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_read_planar_8_u16_0011_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0011 })
+ENTRY(ff_sws_read_planar_8_u16_0111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_read_planar_8_u16_1111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1111 })
+ENTRY(ff_sws_read_planar_8_u32_0001_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0001 })
+ENTRY(ff_sws_read_planar_8_u32_0111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_read_planar_8_u32_1111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1111 })
+ENTRY(ff_sws_read_planar_16_u8_0001_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_read_planar_16_u8_0111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_read_planar_16_u8_1111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_read_planar_16_u16_0001_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_read_planar_16_u16_0111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_read_planar_16_u16_1111_neon, { .op = AARCH64_SWS_OP_READ_PLANAR, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1111 })
+ENTRY(ff_sws_write_bit_8_u8_0001_neon, { .op = AARCH64_SWS_OP_WRITE_BIT, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_write_nibble_8_u8_0001_neon, { .op = AARCH64_SWS_OP_WRITE_NIBBLE, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_write_nibble_16_u8_0001_neon, { .op = 
AARCH64_SWS_OP_WRITE_NIBBLE, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x0001 })
+ENTRY(ff_sws_write_packed_8_u8_0011_neon, { .op = AARCH64_SWS_OP_WRITE_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_write_packed_8_u8_0111_neon, { .op = AARCH64_SWS_OP_WRITE_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_write_packed_8_u8_1111_neon, { .op = AARCH64_SWS_OP_WRITE_PACKED, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_write_packed_8_u16_0011_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask 
= 0x0011 })
+ENTRY(ff_sws_write_packed_8_u16_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_packed_8_u16_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask 
= 0x1111 })
+ENTRY(ff_sws_write_packed_8_u32_0011_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask 
= 0x0011 })
+ENTRY(ff_sws_write_packed_8_u32_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_packed_8_u32_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask 
= 0x1111 })
+ENTRY(ff_sws_write_packed_16_u8_0011_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x0011 })
+ENTRY(ff_sws_write_packed_16_u8_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_packed_16_u8_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x1111 })
+ENTRY(ff_sws_write_packed_16_u16_0011_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask 
= 0x0011 })
+ENTRY(ff_sws_write_packed_16_u16_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_packed_16_u16_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PACKED, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask 
= 0x1111 })
+ENTRY(ff_sws_write_planar_8_u8_0001_neon, { .op = AARCH64_SWS_OP_WRITE_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_write_planar_8_u8_0011_neon, { .op = AARCH64_SWS_OP_WRITE_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_write_planar_8_u8_0111_neon, { .op = AARCH64_SWS_OP_WRITE_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_write_planar_8_u8_1111_neon, { .op = AARCH64_SWS_OP_WRITE_PLANAR, 
.block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_write_planar_8_u16_0001_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask 
= 0x0001 })
+ENTRY(ff_sws_write_planar_8_u16_0011_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask 
= 0x0011 })
+ENTRY(ff_sws_write_planar_8_u16_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_planar_8_u16_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask 
= 0x1111 })
+ENTRY(ff_sws_write_planar_8_u32_0001_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask 
= 0x0001 })
+ENTRY(ff_sws_write_planar_8_u32_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_planar_8_u32_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask 
= 0x1111 })
+ENTRY(ff_sws_write_planar_16_u8_0001_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x0001 })
+ENTRY(ff_sws_write_planar_16_u8_0011_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x0011 })
+ENTRY(ff_sws_write_planar_16_u8_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_planar_16_u8_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask 
= 0x1111 })
+ENTRY(ff_sws_write_planar_16_u16_0001_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask 
= 0x0001 })
+ENTRY(ff_sws_write_planar_16_u16_0011_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask 
= 0x0011 })
+ENTRY(ff_sws_write_planar_16_u16_0111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask 
= 0x0111 })
+ENTRY(ff_sws_write_planar_16_u16_1111_neon, { .op = 
AARCH64_SWS_OP_WRITE_PLANAR, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask 
= 0x1111 })
+ENTRY(ff_sws_swap_bytes_8_u16_0001_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_swap_bytes_8_u16_0010_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0010 })
+ENTRY(ff_sws_swap_bytes_8_u16_0011_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0011 })
+ENTRY(ff_sws_swap_bytes_8_u16_0111_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_swap_bytes_8_u16_1001_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1001 })
+ENTRY(ff_sws_swap_bytes_8_u16_1110_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_swap_bytes_8_u16_1111_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1111 })
+ENTRY(ff_sws_swap_bytes_8_u32_0001_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0001 })
+ENTRY(ff_sws_swap_bytes_8_u32_0011_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0011 })
+ENTRY(ff_sws_swap_bytes_8_u32_0111_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_swap_bytes_8_u32_1001_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1001 })
+ENTRY(ff_sws_swap_bytes_8_u32_1110_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1110 })
+ENTRY(ff_sws_swap_bytes_8_u32_1111_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1111 })
+ENTRY(ff_sws_swap_bytes_16_u16_0001_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_swap_bytes_16_u16_0011_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0011 })
+ENTRY(ff_sws_swap_bytes_16_u16_0111_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_swap_bytes_16_u16_1110_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_swap_bytes_16_u16_1111_neon, { .op = AARCH64_SWS_OP_SWAP_BYTES, 
.block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1111 })
+ENTRY(ff_sws_permute_000000000001_32_u8_0001_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000001ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_permute_000000000002_32_u8_0001_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000002ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_permute_000000000003_8_u8_0001_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000003ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_permute_000000000003_16_u8_0001_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000003ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_permute_000000000003_32_u8_0001_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000003ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_permute_000000000010_8_u8_0010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000010ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_permute_000000000010_16_u8_0010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000010ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_permute_000000000010_32_u8_0010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000010ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_permute_000000000013_8_u8_0010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000013ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_permute_000000000013_16_u8_0010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000013ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_permute_000000000013_32_u8_0010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000013ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_permute_000000000020_8_u8_0100_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000020ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0100 })
+ENTRY(ff_sws_permute_000000000020_32_u8_0100_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000020ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0100 })
+ENTRY(ff_sws_permute_000000000030_8_u8_1000_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000030ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_permute_000000000030_16_u8_1000_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000030ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_permute_000000000030_32_u8_1000_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000030ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_permute_000000000031_32_u8_1000_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000031ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_permute_000000000130_32_u8_1001_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000130ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1001 })
+ENTRY(ff_sws_permute_000000000310_8_u8_0011_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000310ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_permute_000000000310_16_u8_0011_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000310ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_permute_000000000320_32_u8_0101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000000320ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0101 })
+ENTRY(ff_sws_permute_000000001031_32_u8_1010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000001031ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1010 })
+ENTRY(ff_sws_permute_000000001301_8_u8_0011_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000001301ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_permute_000000002032_8_u8_1100_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000002032ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1100 })
+ENTRY(ff_sws_permute_000000002032_32_u8_1100_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000002032ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1100 })
+ENTRY(ff_sws_permute_000000002302_16_u8_0101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000002302ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0101 })
+ENTRY(ff_sws_permute_000000002302_32_u8_0101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000002302ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0101 })
+ENTRY(ff_sws_permute_000000102132_8_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000102132ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_000000102132_16_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000102132ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_000000102132_32_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000102132ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_000000132102_32_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000132102ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_0000001f01f0_8_u8_0011_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000001f01f0ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_permute_0000001f01f0_16_u8_0011_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000001f01f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_permute_0000001f01f0_32_u8_0011_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000001f01f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_permute_000000201231_8_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000201231ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_000000201231_32_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000201231ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_000000231201_8_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000231201ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_000000231201_16_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000231201ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_000000231201_32_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x000000231201ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_0000002f02f0_8_u8_0101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f02f0ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0101 })
+ENTRY(ff_sws_permute_0000002f02f0_16_u8_0101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f02f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0101 })
+ENTRY(ff_sws_permute_0000002f02f0_32_u8_0101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f02f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0101 })
+ENTRY(ff_sws_permute_0000002f12f1_8_u8_0110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f12f1ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0110 })
+ENTRY(ff_sws_permute_0000002f12f1_16_u8_0110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f12f1ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0110 })
+ENTRY(ff_sws_permute_0000002f12f1_32_u8_0110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000002f12f1ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0110 })
+ENTRY(ff_sws_permute_0000003f13f1_8_u8_1010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000003f13f1ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1010 })
+ENTRY(ff_sws_permute_0000003f13f1_16_u8_1010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000003f13f1ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1010 })
+ENTRY(ff_sws_permute_0000003f13f1_32_u8_1010_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x0000003f13f1ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1010 })
+ENTRY(ff_sws_permute_00001f2102f0_8_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00001f2102f0ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00001f2102f0_16_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00001f2102f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00001f2102f0_32_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00001f2102f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00002f1201f0_16_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f1201f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00002f1201f0_32_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f1201f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00002f12f103_8_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f103ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00002f12f103_16_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f103ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00002f12f103_32_u8_0111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f103ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_permute_00002f12f130_8_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f130ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_00002f12f130_16_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f130ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_00002f12f130_32_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f12f130ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_00002f3203f0_8_u8_1101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f3203f0ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1101 })
+ENTRY(ff_sws_permute_00002f3203f0_16_u8_1101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00002f3203f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1101 })
+ENTRY(ff_sws_permute_00003f2302f0_16_u8_1101_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00003f2302f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1101 })
+ENTRY(ff_sws_permute_00003f2312f1_8_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00003f2312f1ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_00003f2312f1_16_u8_1110_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x00003f2312f1ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_permute_001f213203f0_8_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x001f213203f0ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_001f213203f0_16_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x001f213203f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_001f213203f0_32_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x001f213203f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_002f123103f0_8_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x002f123103f0ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_002f123103f0_32_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x002f123103f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_003f231201f0_16_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x003f231201f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_003f231201f0_32_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x003f231201f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_2f12f13f03f0_8_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x2f12f13f03f0ULL, .block_size = 8, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_2f12f13f03f0_16_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x2f12f13f03f0ULL, .block_size = 16, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_permute_2f12f13f03f0_32_u8_1111_neon, { .op = 
AARCH64_SWS_OP_PERMUTE, .move = 0x2f12f13f03f0ULL, .block_size = 32, .type = 
AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_copy_000000002010_8_u8_0110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000002010ULL, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 
0x0110 })
+ENTRY(ff_sws_copy_000000002010_16_u8_0110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000002010ULL, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 
0x0110 })
+ENTRY(ff_sws_copy_000000002010_32_u8_0110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000002010ULL, .block_size = 32, .type = AARCH64_PIXEL_U8, .mask = 
0x0110 })
+ENTRY(ff_sws_copy_000000103120_8_u8_1110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000103120ULL, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 
0x1110 })
+ENTRY(ff_sws_copy_000000103120_16_u8_1110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000103120ULL, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 
0x1110 })
+ENTRY(ff_sws_copy_000000103120_32_u8_1110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000103120ULL, .block_size = 32, .type = AARCH64_PIXEL_U8, .mask = 
0x1110 })
+ENTRY(ff_sws_copy_000000302010_8_u8_1110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000302010ULL, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 
0x1110 })
+ENTRY(ff_sws_copy_000000302010_16_u8_1110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000302010ULL, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 
0x1110 })
+ENTRY(ff_sws_copy_000000302010_32_u8_1110_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x000000302010ULL, .block_size = 32, .type = AARCH64_PIXEL_U8, .mask = 
0x1110 })
+ENTRY(ff_sws_copy_001f01f03020_8_u8_1111_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x001f01f03020ULL, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 
0x1111 })
+ENTRY(ff_sws_copy_001f01f03020_16_u8_1111_neon, { .op = AARCH64_SWS_OP_COPY, 
.move = 0x001f01f03020ULL, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 
0x1111 })
+ENTRY(ff_sws_unpack_0121_8_u8_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0121, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0121_16_u8_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0121, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0233_8_u8_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0233, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0233_16_u8_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0233, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0332_8_u8_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0332, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0332_16_u8_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0332, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0444_8_u16_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0444, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0444_16_u16_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, 
.pack = 0x0444, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0555_8_u16_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0555, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0555_16_u16_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, 
.pack = 0x0555, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0565_8_u16_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x0565, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_0565_16_u16_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, 
.pack = 0x0565, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_2aaa_8_u32_0010_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x2aaa, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0010 })
+ENTRY(ff_sws_unpack_2aaa_8_u32_0111_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0x2aaa, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_unpack_aaa2_8_u32_0100_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0xaaa2, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0100 })
+ENTRY(ff_sws_unpack_aaa2_8_u32_1110_neon, { .op = AARCH64_SWS_OP_UNPACK, .pack 
= 0xaaa2, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1110 })
+ENTRY(ff_sws_pack_0121_8_u8_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0121, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0121_16_u8_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0121, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0233_8_u8_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0233, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0233_16_u8_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0233, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0332_8_u8_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0332, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0332_16_u8_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0332, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0444_8_u16_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0444, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0444_16_u16_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0444, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0555_8_u16_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0555, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0555_16_u16_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0555, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0565_8_u16_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0565, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_pack_0565_16_u16_0111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x0565, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_pack_2aaa_8_u32_1111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0x2aaa, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1111 })
+ENTRY(ff_sws_pack_aaa2_8_u32_1111_neon, { .op = AARCH64_SWS_OP_PACK, .pack = 
0xaaa2, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1111 })
+ENTRY(ff_sws_lshift_1_8_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
1, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_1_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 1, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_1_16_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 1, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_lshift_2_8_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
2, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_2_8_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
2, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_lshift_2_8_u32_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
2, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_2_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 2, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_2_16_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 2, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_lshift_3_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 3, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_4_8_u16_0001_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
4, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_lshift_4_8_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
4, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_4_8_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
4, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_lshift_4_16_u16_0001_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 4, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_lshift_4_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 4, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_4_16_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 4, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_lshift_5_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 5, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_6_8_u16_0001_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
6, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_lshift_6_8_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
6, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_6_8_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift = 
6, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_lshift_6_16_u16_0001_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 6, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_lshift_6_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 6, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_6_16_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 6, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_lshift_7_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 7, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_8_16_u16_0111_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 8, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_lshift_8_16_u16_1110_neon, { .op = AARCH64_SWS_OP_LSHIFT, .shift 
= 8, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_rshift_4_8_u16_0001_neon, { .op = AARCH64_SWS_OP_RSHIFT, .shift = 
4, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_rshift_4_8_u16_0010_neon, { .op = AARCH64_SWS_OP_RSHIFT, .shift = 
4, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0010 })
+ENTRY(ff_sws_rshift_4_8_u16_0111_neon, { .op = AARCH64_SWS_OP_RSHIFT, .shift = 
4, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_rshift_4_16_u16_0111_neon, { .op = AARCH64_SWS_OP_RSHIFT, .shift 
= 4, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_rshift_6_8_u16_0001_neon, { .op = AARCH64_SWS_OP_RSHIFT, .shift = 
6, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_rshift_6_8_u16_0111_neon, { .op = AARCH64_SWS_OP_RSHIFT, .shift = 
6, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_rshift_6_16_u16_0111_neon, { .op = AARCH64_SWS_OP_RSHIFT, .shift 
= 6, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_clear_0fff_8_u8_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0x0fff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_clear_0fff_8_u8_1011_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0x0fff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1011 })
+ENTRY(ff_sws_clear_0fff_8_u16_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0x0fff, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1000 })
+ENTRY(ff_sws_clear_0fff_8_u16_1101_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0x0fff, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1101 })
+ENTRY(ff_sws_clear_0fff_16_u8_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0x0fff, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_clear_0fff_16_u16_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0x0fff, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1000 })
+ENTRY(ff_sws_clear_1fff_8_u8_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0x1fff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_clear_1fff_8_u8_1011_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0x1fff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1011 })
+ENTRY(ff_sws_clear_1fff_8_u8_1101_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0x1fff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1101 })
+ENTRY(ff_sws_clear_1fff_8_u16_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0x1fff, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1000 })
+ENTRY(ff_sws_clear_1fff_16_u8_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0x1fff, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x1000 })
+ENTRY(ff_sws_clear_1fff_16_u16_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0x1fff, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1000 })
+ENTRY(ff_sws_clear_ff1f_8_u8_0010_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0xff1f, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_clear_ff1f_8_u16_0010_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xff1f, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0010 })
+ENTRY(ff_sws_clear_ff1f_16_u8_0010_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xff1f, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_clear_ff1f_16_u16_0010_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xff1f, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0010 })
+ENTRY(ff_sws_clear_fff0_8_u8_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0xfff0, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_clear_fff0_16_u8_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xfff0, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_clear_fff1_8_u8_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0xfff1, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_clear_fff1_8_u8_1101_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0xfff1, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1101 })
+ENTRY(ff_sws_clear_fff1_8_u16_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xfff1, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_clear_fff1_8_u16_1101_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xfff1, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1101 })
+ENTRY(ff_sws_clear_fff1_16_u8_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xfff1, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_clear_fff1_16_u8_0111_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xfff1, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_clear_fff1_16_u16_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xfff1, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_clear_fff1_16_u16_0111_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xfff1, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_clear_ffff_8_u8_0011_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0xffff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_clear_ffff_8_u8_0101_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0xffff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x0101 })
+ENTRY(ff_sws_clear_ffff_8_u8_1100_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear = 
0xffff, .block_size = 8, .type = AARCH64_PIXEL_U8, .mask = 0x1100 })
+ENTRY(ff_sws_clear_ffff_8_u16_1100_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1100 })
+ENTRY(ff_sws_clear_ffff_8_u32_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0001 })
+ENTRY(ff_sws_clear_ffff_8_u32_0010_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0010 })
+ENTRY(ff_sws_clear_ffff_8_u32_0101_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0101 })
+ENTRY(ff_sws_clear_ffff_8_u32_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1000 })
+ENTRY(ff_sws_clear_ffff_8_u32_1010_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1010 })
+ENTRY(ff_sws_clear_ffff_8_u32_1011_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1011 })
+ENTRY(ff_sws_clear_ffff_8_u32_1101_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1101 })
+ENTRY(ff_sws_clear_ffff_16_u8_0011_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_clear_ffff_16_u8_0110_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0110 })
+ENTRY(ff_sws_clear_ffff_16_u16_0001_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_clear_ffff_16_u16_0011_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0011 })
+ENTRY(ff_sws_clear_ffff_16_u16_0111_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_clear_ffff_16_u16_1000_neon, { .op = AARCH64_SWS_OP_CLEAR, .clear 
= 0xffff, .block_size = 16, .type = AARCH64_PIXEL_U16, .mask = 0x1000 })
+ENTRY(ff_sws_to_u8_8_f32_0001_neon, { .op = AARCH64_SWS_OP_TO_U8, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_to_u8_8_f32_0011_neon, { .op = AARCH64_SWS_OP_TO_U8, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0011 })
+ENTRY(ff_sws_to_u8_8_f32_0111_neon, { .op = AARCH64_SWS_OP_TO_U8, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_to_u8_8_f32_1001_neon, { .op = AARCH64_SWS_OP_TO_U8, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_to_u8_8_f32_1110_neon, { .op = AARCH64_SWS_OP_TO_U8, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_to_u8_8_f32_1111_neon, { .op = AARCH64_SWS_OP_TO_U8, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_to_u8_16_u16_0111_neon, { .op = AARCH64_SWS_OP_TO_U8, .block_size 
= 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_to_u16_8_u8_0111_neon, { .op = AARCH64_SWS_OP_TO_U16, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_to_u16_8_u32_0111_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_to_u16_8_u32_1110_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1110 })
+ENTRY(ff_sws_to_u16_8_f32_0001_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_to_u16_8_f32_0011_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0011 })
+ENTRY(ff_sws_to_u16_8_f32_0111_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_to_u16_8_f32_1001_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_to_u16_8_f32_1110_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_to_u16_8_f32_1111_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_to_u16_16_u8_0001_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_to_u16_16_u8_0111_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_to_u16_16_u8_1110_neon, { .op = AARCH64_SWS_OP_TO_U16, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_to_u32_8_u8_0001_neon, { .op = AARCH64_SWS_OP_TO_U32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_to_u32_8_u8_0111_neon, { .op = AARCH64_SWS_OP_TO_U32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_to_u32_8_u16_0001_neon, { .op = AARCH64_SWS_OP_TO_U32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_to_u32_8_u16_0111_neon, { .op = AARCH64_SWS_OP_TO_U32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_to_u32_8_f32_0001_neon, { .op = AARCH64_SWS_OP_TO_U32, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_to_u32_8_f32_0111_neon, { .op = AARCH64_SWS_OP_TO_U32, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_to_u32_8_f32_1001_neon, { .op = AARCH64_SWS_OP_TO_U32, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_to_u32_8_f32_1110_neon, { .op = AARCH64_SWS_OP_TO_U32, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_to_u32_8_f32_1111_neon, { .op = AARCH64_SWS_OP_TO_U32, 
.block_size = 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_to_f32_8_u8_0001_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_to_f32_8_u8_0010_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0010 })
+ENTRY(ff_sws_to_f32_8_u8_0011_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_to_f32_8_u8_0100_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0100 })
+ENTRY(ff_sws_to_f32_8_u8_0111_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_to_f32_8_u8_1010_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x1010 })
+ENTRY(ff_sws_to_f32_8_u8_1100_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x1100 })
+ENTRY(ff_sws_to_f32_8_u8_1110_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_to_f32_8_u8_1111_neon, { .op = AARCH64_SWS_OP_TO_F32, .block_size 
= 8, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_to_f32_8_u16_0001_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_to_f32_8_u16_0010_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0010 })
+ENTRY(ff_sws_to_f32_8_u16_0011_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0011 })
+ENTRY(ff_sws_to_f32_8_u16_0111_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_to_f32_8_u16_1110_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1110 })
+ENTRY(ff_sws_to_f32_8_u16_1111_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U16, .mask = 0x1111 })
+ENTRY(ff_sws_to_f32_8_u32_0010_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0010 })
+ENTRY(ff_sws_to_f32_8_u32_0100_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0100 })
+ENTRY(ff_sws_to_f32_8_u32_0111_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_to_f32_8_u32_1110_neon, { .op = AARCH64_SWS_OP_TO_F32, 
.block_size = 8, .type = AARCH64_PIXEL_U32, .mask = 0x1110 })
+ENTRY(ff_sws_expand_pair_16_u8_0001_neon, { .op = AARCH64_SWS_OP_EXPAND_PAIR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_expand_pair_16_u8_0011_neon, { .op = AARCH64_SWS_OP_EXPAND_PAIR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0011 })
+ENTRY(ff_sws_expand_pair_16_u8_0111_neon, { .op = AARCH64_SWS_OP_EXPAND_PAIR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_expand_pair_16_u8_1110_neon, { .op = AARCH64_SWS_OP_EXPAND_PAIR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x1110 })
+ENTRY(ff_sws_expand_pair_16_u8_1111_neon, { .op = AARCH64_SWS_OP_EXPAND_PAIR, 
.block_size = 16, .type = AARCH64_PIXEL_U8, .mask = 0x1111 })
+ENTRY(ff_sws_min_8_f32_0001_neon, { .op = AARCH64_SWS_OP_MIN, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_min_8_f32_0011_neon, { .op = AARCH64_SWS_OP_MIN, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0011 })
+ENTRY(ff_sws_min_8_f32_0111_neon, { .op = AARCH64_SWS_OP_MIN, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_min_8_f32_1001_neon, { .op = AARCH64_SWS_OP_MIN, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_min_8_f32_1110_neon, { .op = AARCH64_SWS_OP_MIN, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_min_8_f32_1111_neon, { .op = AARCH64_SWS_OP_MIN, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_max_8_f32_0001_neon, { .op = AARCH64_SWS_OP_MAX, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_max_8_f32_0011_neon, { .op = AARCH64_SWS_OP_MAX, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0011 })
+ENTRY(ff_sws_max_8_f32_0111_neon, { .op = AARCH64_SWS_OP_MAX, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_max_8_f32_1001_neon, { .op = AARCH64_SWS_OP_MAX, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_max_8_f32_1111_neon, { .op = AARCH64_SWS_OP_MAX, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_scale_8_u32_0001_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 8, .type = AARCH64_PIXEL_U32, .mask = 0x0001 })
+ENTRY(ff_sws_scale_8_u32_0111_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 8, .type = AARCH64_PIXEL_U32, .mask = 0x0111 })
+ENTRY(ff_sws_scale_8_f32_0001_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_scale_8_f32_0011_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0011 })
+ENTRY(ff_sws_scale_8_f32_0111_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_scale_8_f32_1110_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_scale_8_f32_1111_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 8, .type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_scale_16_u8_0001_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 16, .type = AARCH64_PIXEL_U8, .mask = 0x0001 })
+ENTRY(ff_sws_scale_16_u8_0111_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 16, .type = AARCH64_PIXEL_U8, .mask = 0x0111 })
+ENTRY(ff_sws_scale_16_u16_0001_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 16, .type = AARCH64_PIXEL_U16, .mask = 0x0001 })
+ENTRY(ff_sws_scale_16_u16_0111_neon, { .op = AARCH64_SWS_OP_SCALE, .block_size 
= 16, .type = AARCH64_PIXEL_U16, .mask = 0x0111 })
+ENTRY(ff_sws_linear_000000000f_8_f32_0001_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x000000000fULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0001 })
+ENTRY(ff_sws_linear_00000000fc_8_f32_0001_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x00000000fcULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0001 })
+ENTRY(ff_sws_linear_00000000ff_8_f32_0001_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x00000000ffULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0001 })
+ENTRY(ff_sws_linear_000000c000_8_f32_0010_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x000000c000ULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0010 })
+ENTRY(ff_sws_linear_000373dcc7_8_f32_0111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x000373dcc7ULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 })
+ENTRY(ff_sws_linear_0003f3fccf_8_f32_0111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x0003f3fccfULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 })
+ENTRY(ff_sws_linear_000c00c00c_8_f32_0111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x000c00c00cULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 })
+ENTRY(ff_sws_linear_000c30cc0f_8_f32_0111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x000c30cc0fULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 })
+ENTRY(ff_sws_linear_000ff3fcfc_8_f32_0111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x000ff3fcfcULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 })
+ENTRY(ff_sws_linear_000ff3fcff_8_f32_0111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0x000ff3fcffULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x0111 })
+ENTRY(ff_sws_linear_c000000000_8_f32_1000_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0xc000000000ULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1000 })
+ENTRY(ff_sws_linear_c00000000f_8_f32_1001_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0xc00000000fULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1001 })
+ENTRY(ff_sws_linear_c0000000fc_8_f32_1001_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0xc0000000fcULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1001 })
+ENTRY(ff_sws_linear_c003f3fccf_8_f32_1111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0xc003f3fccfULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1111 })
+ENTRY(ff_sws_linear_c00c00c00c_8_f32_1111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0xc00c00c00cULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1111 })
+ENTRY(ff_sws_linear_c00ff3fcff_8_f32_1111_neon, { .op = AARCH64_SWS_OP_LINEAR, 
.linear.mask = 0xc00ff3fcffULL, .block_size = 8, .type = AARCH64_PIXEL_F32, 
.mask = 0x1111 })
+ENTRY(ff_sws_linear_fma_000000000f_8_f32_0001_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000000000fULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_linear_fma_00000000fc_8_f32_0001_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x00000000fcULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_linear_fma_00000000ff_8_f32_0001_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x00000000ffULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0001 })
+ENTRY(ff_sws_linear_fma_000000c000_8_f32_0010_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000000c000ULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0010 })
+ENTRY(ff_sws_linear_fma_000373dcc7_8_f32_0111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000373dcc7ULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_linear_fma_0003f3fccf_8_f32_0111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x0003f3fccfULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_linear_fma_000c00c00c_8_f32_0111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000c00c00cULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_linear_fma_000c30cc0f_8_f32_0111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000c30cc0fULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_linear_fma_000ff3fcfc_8_f32_0111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000ff3fcfcULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_linear_fma_000ff3fcff_8_f32_0111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0x000ff3fcffULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_linear_fma_c000000000_8_f32_1000_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc000000000ULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1000 })
+ENTRY(ff_sws_linear_fma_c00000000f_8_f32_1001_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc00000000fULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_linear_fma_c0000000fc_8_f32_1001_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc0000000fcULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_linear_fma_c003f3fccf_8_f32_1111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc003f3fccfULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_linear_fma_c00c00c00c_8_f32_1111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc00c00c00cULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_linear_fma_c00ff3fcff_8_f32_1111_neon, { .op = 
AARCH64_SWS_OP_LINEAR_FMA, .linear.mask = 0xc00ff3fcffULL, .block_size = 8, 
.type = AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_dither_0325_4_8_f32_1111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x0325, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_dither_032f_4_8_f32_1110_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x032f, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_dither_2305_4_8_f32_1111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x2305, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_dither_230f_4_8_f32_1110_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x230f, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_dither_3000_4_8_f32_1111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x3000, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_dither_302f_4_8_f32_1110_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x302f, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1110 })
+ENTRY(ff_sws_dither_3ff0_4_8_f32_1001_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x3ff0, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_dither_5023_4_8_f32_1111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x5023, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_dither_5032_4_8_f32_1111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x5032, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_dither_5230_4_8_f32_1111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x5230, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1111 })
+ENTRY(ff_sws_dither_5ff0_4_8_f32_1001_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x5ff0, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1001 })
+ENTRY(ff_sws_dither_5fff_4_8_f32_1000_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0x5fff, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x1000 })
+ENTRY(ff_sws_dither_f023_4_8_f32_0111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xf023, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_dither_f032_4_8_f32_0111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xf032, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_dither_f203_4_8_f32_0111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xf203, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_dither_f230_4_8_f32_0111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xf230, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_dither_f2f0_4_8_f32_0101_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xf2f0, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0101 })
+ENTRY(ff_sws_dither_f2ff_4_8_f32_0100_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xf2ff, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0100 })
+ENTRY(ff_sws_dither_f302_4_8_f32_0111_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xf302, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0111 })
+ENTRY(ff_sws_dither_ff30_4_8_f32_0011_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xff30, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0011 })
+ENTRY(ff_sws_dither_ff3f_4_8_f32_0010_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xff3f, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0010 })
+ENTRY(ff_sws_dither_fff0_4_8_f32_0001_neon, { .op = AARCH64_SWS_OP_DITHER, 
.dither.y_offset = 0xfff0, .dither.size_log2 = 4, .block_size = 8, .type = 
AARCH64_PIXEL_F32, .mask = 0x0001 })
diff --git a/libswscale/aarch64/ops_impl.c b/libswscale/aarch64/ops_impl.c
index 799558613f..f30cc18baf 100644
--- a/libswscale/aarch64/ops_impl.c
+++ b/libswscale/aarch64/ops_impl.c
@@ -191,8 +191,8 @@ static void buf_appendf(char **pbuf, size_t *prem, const 
char *fmt, ...)
 /**
  * The following structure is used to describe one field from
  * SwsAArch64OpImplParams. This will be used to serialize the parameter
- * structure, generate function names and lookup strings, and compare
- * two sets of parameters.
+ * structure, generate function names, and compare two sets of
+ * parameters.
  */
 
 typedef struct ParamField {
diff --git a/libswscale/aarch64/ops_lookup.h b/libswscale/aarch64/ops_lookup.h
deleted file mode 100644
index 06858991d8..0000000000
--- a/libswscale/aarch64/ops_lookup.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2026 Ramiro Polla
- *
- * 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 SWSCALE_AARCH64_OPS_LOOKUP_H
-#define SWSCALE_AARCH64_OPS_LOOKUP_H
-
-#include "libswscale/ops_chain.h"
-#include "libswscale/aarch64/ops_impl.h"
-
-/* Look up the exported function pointer for the given parameters. */
-SwsFuncPtr ff_sws_aarch64_lookup(const SwsAArch64OpImplParams *p);
-
-#endif /* SWSCALE_AARCH64_OPS_LOOKUP_H */
diff --git a/libswscale/tests/sws_ops_aarch64.c 
b/libswscale/tests/sws_ops_aarch64.c
index c106677462..a48e95a8a3 100644
--- a/libswscale/tests/sws_ops_aarch64.c
+++ b/libswscale/tests/sws_ops_aarch64.c
@@ -147,9 +147,23 @@ static int register_op(SwsContext *ctx, void *opaque, 
SwsOpList *ops)
 }
 
 /*********************************************************************/
+static void impl_func_name(char **buf, size_t *size, const 
SwsAArch64OpImplParams *params)
+{
+    buf_appendf(buf, size, "ff_sws");
+    const ParamField **fields = op_fields[params->op];
+    for (int i = 0; fields[i]; i++) {
+        const ParamField *field = fields[i];
+        void *p = (void *) (((uintptr_t) params) + field->offset);
+        field->print_str(buf, size, p);
+    }
+    buf_appendf(buf, size, "_neon");
+}
+
 static void serialize_op(char *buf, size_t size, const SwsAArch64OpImplParams 
*params)
 {
-    buf_appendf(&buf, &size, "{");
+    buf_appendf(&buf, &size, "ENTRY(");
+    impl_func_name(&buf, &size, params);
+    buf_appendf(&buf, &size, ", {");
     const ParamField **fields = op_fields[params->op];
     for (int i = 0; fields[i]; i++) {
         const ParamField *field = fields[i];
@@ -159,7 +173,7 @@ static void serialize_op(char *buf, size_t size, const 
SwsAArch64OpImplParams *p
         buf_appendf(&buf, &size, " .%s = ", field->name);
         field->print_val(&buf, &size, p);
     }
-    buf_appendf(&buf, &size, " }");
+    buf_appendf(&buf, &size, " })");
     av_assert0(size && "string buffer exhausted");
 }
 
@@ -171,7 +185,7 @@ static int print_op(void *opaque, void *elem)
 
     char buf[256];
     serialize_op(buf, sizeof(buf), params);
-    fprintf(fp, "%s,\n", buf);
+    fprintf(fp, "%s\n", buf);
 
     av_free(params);
 

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to