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, ¶ms); if (ret < 0) goto error; - SwsFuncPtr func = ff_sws_aarch64_lookup(¶ms); + SwsFuncPtr func = aarch64_lookup(¶ms); 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]
