swscale/aarch64/ops: use SwsUOpParams for SwsAArch64OpImplParams's parameter fields

This is one more step to eventually replace the parameter fields in
SwsAArch64OpImplParams by generic structs from libswscale/uops.h.

The function names and ordering in ops_entries.c is maintained to
simplify the gradual move to uops.h.

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Ramiro Polla <ramiro.polla@gmail.com>
This commit is contained in:
Ramiro Polla
2026-06-17 23:13:55 +02:00
parent 0536c93b32
commit 19cc66f02f
6 changed files with 322 additions and 325 deletions

View File

@@ -86,7 +86,7 @@ static int aarch64_setup_linear(const SwsAArch64OpImplParams *p,
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
const int jj = (j == 0) ? 4 : (j - 1);
if (!(p->linear.zero & SWS_MASK(i, jj)))
if (!(p->par.lin.zero & SWS_MASK(i, jj)))
coeffs[i_coeff++] = (float) op->lin.m[i][jj].num / op->lin.m[i][jj].den;
}
}

View File

@@ -645,8 +645,8 @@ static void swizzle_emit(SwsAArch64Context *s, int8_t dst, int8_t src)
static void asmgen_op_move(SwsAArch64Context *s, const SwsAArch64OpImplParams *p)
{
for (int i = 0; i < p->move.num_moves; i++)
swizzle_emit(s, p->move.dst[i], p->move.src[i]);
for (int i = 0; i < p->par.move.num_moves; i++)
swizzle_emit(s, p->par.move.dst[i], p->par.move.src[i]);
}
/*********************************************************************/
@@ -665,16 +665,16 @@ static void asmgen_op_unpack(SwsAArch64Context *s, const SwsAArch64OpImplParams
uint8_t cur_vt = 0;
const int offsets[4] = {
p->pack.pattern[3] + p->pack.pattern[2] + p->pack.pattern[1],
p->pack.pattern[3] + p->pack.pattern[2],
p->pack.pattern[3],
p->par.pack.pattern[3] + p->par.pack.pattern[2] + p->par.pack.pattern[1],
p->par.pack.pattern[3] + p->par.pack.pattern[2],
p->par.pack.pattern[3],
0
};
/* Generate masks. */
rasm_add_comment(r, "generate masks");
LOOP_MASK(p, i) {
uint32_t val = (1u << p->pack.pattern[i]) - 1;
uint32_t val = (1u << p->par.pack.pattern[i]) - 1;
for (int j = 0; j < 4; j++) {
if (mask_val[j] == val) {
mask_val[i] = mask_val[j];
@@ -732,9 +732,9 @@ static void asmgen_op_pack(SwsAArch64Context *s, const SwsAArch64OpImplParams *p
RasmOp *vh = s->vh;
const int offsets[4] = {
p->pack.pattern[3] + p->pack.pattern[2] + p->pack.pattern[1],
p->pack.pattern[3] + p->pack.pattern[2],
p->pack.pattern[3],
p->par.pack.pattern[3] + p->par.pack.pattern[2] + p->par.pack.pattern[1],
p->par.pack.pattern[3] + p->par.pack.pattern[2],
p->par.pack.pattern[3],
0
};
SwsCompMask offset_mask = 0;
@@ -765,7 +765,7 @@ static void asmgen_op_pack(SwsAArch64Context *s, const SwsAArch64OpImplParams *p
static void asmgen_op_lshift(SwsAArch64Context *s, const SwsAArch64OpImplParams *p)
{
uint8_t shift = p->shift.amount;
uint8_t shift = p->par.shift.amount;
RasmContext *r = s->rctx;
RasmOp *vl = s->vl;
RasmOp *vh = s->vh;
@@ -780,7 +780,7 @@ static void asmgen_op_lshift(SwsAArch64Context *s, const SwsAArch64OpImplParams
static void asmgen_op_rshift(SwsAArch64Context *s, const SwsAArch64OpImplParams *p)
{
uint8_t shift = p->shift.amount;
uint8_t shift = p->par.shift.amount;
RasmContext *r = s->rctx;
RasmOp *vl = s->vl;
RasmOp *vh = s->vh;
@@ -798,9 +798,9 @@ static void emit_clear(SwsAArch64Context *s, const SwsAArch64OpImplParams *p,
{
RasmContext *r = s->rctx;
RasmOp clear_vec = s->vt[0];
if (p->clear.zero & SWS_COMP(i)) {
if (p->par.clear.zero & SWS_COMP(i)) {
i_movi(r, vx[i], IMM(0)); CMTF("%s[%u] = 0;", vx_str, i);
} else if (p->clear.one & SWS_COMP(i)) {
} else if (p->par.clear.one & SWS_COMP(i)) {
if (p->block_size * ff_sws_pixel_type_size(p->type) == 8) {
i_movi(r, v_8b (vx[i]), IMM(0xff));
} else {
@@ -825,7 +825,7 @@ static void asmgen_op_clear(SwsAArch64Context *s, const SwsAArch64OpImplParams *
bool load_priv = false;
LOOP_MASK(p, i) {
if (!((p->clear.zero | p->clear.one) & SWS_COMP(i)))
if (!((p->par.clear.zero | p->par.clear.one) & SWS_COMP(i)))
load_priv = true;
}
if (load_priv) {
@@ -1095,7 +1095,7 @@ static void linear_pass(SwsAArch64Context *s, const SwsAArch64OpImplParams *p,
for (int j = 0; j < 5; j++) {
bool is_offset = (j == 0);
int src_j = is_offset ? 4 : (j - 1);
if (p->linear.zero & SWS_MASK(i, src_j))
if (p->par.lin.zero & SWS_MASK(i, src_j))
continue;
RasmOp vsrc = src_vx[src_j];
uint8_t vc_i = i_coeff / 4;
@@ -1105,7 +1105,7 @@ static void linear_pass(SwsAArch64Context *s, const SwsAArch64OpImplParams *p,
if (first && is_offset) {
i_dup (r, vx[i], vcoeff); CMTF("v%c[%u] = broadcast(vc[%u][%u]);", cvh, i, vc_i, vc_j);
} else if (first && !is_offset) {
if (p->linear.one & SWS_MASK(i, src_j)) {
if (p->par.lin.one & SWS_MASK(i, src_j)) {
i_mov16b(r, vx[i], vsrc); CMTF("v%c[%u] = vsrc[%u];", cvh, i, src_j);
} else {
i_fmul (r, vx[i], vsrc, vcoeff); CMTF("v%c[%u] = vsrc[%u] * vc[%u][%u];", cvh, i, src_j, vc_i, vc_j);
@@ -1125,7 +1125,7 @@ static void linear_pass(SwsAArch64Context *s, const SwsAArch64OpImplParams *p,
* to reduce the dependency chain.
* There is no need to perform multiplications by 1.
*/
if (!(p->linear.one & SWS_MASK(i, src_j))) {
if (!(p->par.lin.one & SWS_MASK(i, src_j))) {
pre_mul = rasm_set_current_node(r, pre_mul);
i_fmul(r, vtmp[vc_j], vsrc, vcoeff); CMTF("vtmp[%u] = vsrc[%u] * vc[%u][%u];", vc_j, src_j, vc_i, vc_j);
pre_mul = rasm_set_current_node(r, pre_mul);
@@ -1167,7 +1167,7 @@ static void asmgen_op_linear(SwsAArch64Context *s, const SwsAArch64OpImplParams
for (int j = 0; j < 5; j++) {
bool is_offset = (j == 0);
int src_j = is_offset ? 4 : (j - 1);
if (p->linear.zero & SWS_MASK(i, src_j))
if (p->par.lin.zero & SWS_MASK(i, src_j))
continue;
if (!is_offset && overwritten[src_j])
save_mask |= SWS_COMP(src_j);
@@ -1216,10 +1216,10 @@ static void asmgen_op_dither(SwsAArch64Context *s, const SwsAArch64OpImplParams
/* Very cheap bucket sort. */
int max_offset = 0;
LOOP_MASK(p, i)
max_offset = FFMAX(max_offset, p->dither.y_offset[i]);
max_offset = FFMAX(max_offset, p->par.dither.y_offset[i]);
for (int y_off = 0; y_off <= max_offset; y_off++) {
LOOP_MASK(p, i) {
if (p->dither.y_offset[i] == y_off)
if (p->par.dither.y_offset[i] == y_off)
sorted[n_comps++] = i;
}
}
@@ -1248,7 +1248,7 @@ static void asmgen_op_dither(SwsAArch64Context *s, const SwsAArch64OpImplParams
* lsb = log2(block_size) + log2(sizeof(float))
*/
const int block_size_log2 = (p->block_size == 16) ? 4 : 3;
const int dither_size_log2 = p->dither.size_log2;
const int dither_size_log2 = p->par.dither.size_log2;
const int sizeof_float_log2 = 2;
if (dither_size_log2 != block_size_log2) {
RasmOp lsb = IMM(block_size_log2 + sizeof_float_log2);
@@ -1261,7 +1261,7 @@ static void asmgen_op_dither(SwsAArch64Context *s, const SwsAArch64OpImplParams
int prev_i = 0;
for (int sorted_i = 0; sorted_i < n_comps; sorted_i++) {
int i = sorted[sorted_i];
uint8_t y_off = p->dither.y_offset[i];
uint8_t y_off = p->par.dither.y_offset[i];
bool do_load = (y_off != last_y_off);
if (last_y_off < 0) {

View File

@@ -76,91 +76,91 @@ ENTRY(ff_sws_write_packed_16_u16_1111_neon, { .uop = SWS_UOP_WRITE_PACKED, .bloc
ENTRY(ff_sws_write_nibble_8_u8_0001_neon, { .uop = SWS_UOP_WRITE_NIBBLE, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_write_nibble_16_u8_0001_neon, { .uop = SWS_UOP_WRITE_NIBBLE, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_write_bit_8_u8_0001_neon, { .uop = SWS_UOP_WRITE_BIT, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000001_32_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {1, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000002_32_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {2, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000003_8_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000003_16_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000003_32_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000010_8_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000010_16_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000010_32_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000013_8_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000013_16_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000013_32_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000020_8_u8_0100_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {2, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x4 })
ENTRY(ff_sws_permute_000000000020_32_u8_0100_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {2, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x4 })
ENTRY(ff_sws_permute_000000000030_8_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000030_16_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000030_32_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000031_32_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {1, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000130_32_u8_1001_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x9 })
ENTRY(ff_sws_permute_000000000310_8_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 3, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000000310_16_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 3, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000000320_32_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {2, 0, 0, 0, 0, 0}, .src = {0, 3, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_000000001031_32_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {3, 1, 0, 0, 0, 0}, .src = {1, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_000000001301_8_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {0, 1, 0, 0, 0, 0}, .src = {1, 3, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000002032_8_u8_1100_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {3, 2, 0, 0, 0, 0}, .src = {2, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xc })
ENTRY(ff_sws_permute_000000002032_32_u8_1100_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {3, 2, 0, 0, 0, 0}, .src = {2, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xc })
ENTRY(ff_sws_permute_000000002302_16_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {0, 2, 0, 0, 0, 0}, .src = {2, 3, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_000000002302_32_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 2, .dst = {0, 2, 0, 0, 0, 0}, .src = {2, 3, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_000000102132_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {3, 2, 1, 0, 0, 0}, .src = {2, 1, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000102132_16_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {3, 2, 1, 0, 0, 0}, .src = {2, 1, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000102132_32_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {3, 2, 1, 0, 0, 0}, .src = {2, 1, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000132102_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {0, 2, 1, 0, 0, 0}, .src = {2, 1, 3, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_0000001f01f0_8_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 0, 1, 0, 0, 0}, .src = {0, 1, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_0000001f01f0_16_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 0, 1, 0, 0, 0}, .src = {0, 1, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_0000001f01f0_32_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 0, 1, 0, 0, 0}, .src = {0, 1, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000201231_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {3, 1, 2, 0, 0, 0}, .src = {1, 2, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000201231_32_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {3, 1, 2, 0, 0, 0}, .src = {1, 2, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000231201_8_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {0, 1, 2, 0, 0, 0}, .src = {1, 2, 3, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_000000231201_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {0, 1, 2, 0, 0, 0}, .src = {1, 2, 3, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_000000231201_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {0, 1, 2, 0, 0, 0}, .src = {1, 2, 3, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_0000002f02f0_8_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 0, 2, 0, 0, 0}, .src = {0, 2, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_0000002f02f0_16_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 0, 2, 0, 0, 0}, .src = {0, 2, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_0000002f02f0_32_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 0, 2, 0, 0, 0}, .src = {0, 2, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_0000002f12f1_8_u8_0110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 1, 2, 0, 0, 0}, .src = {1, 2, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_permute_0000002f12f1_16_u8_0110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 1, 2, 0, 0, 0}, .src = {1, 2, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_permute_0000002f12f1_32_u8_0110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 1, 2, 0, 0, 0}, .src = {1, 2, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_permute_0000003f13f1_8_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 1, 3, 0, 0, 0}, .src = {1, 3, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_0000003f13f1_16_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 1, 3, 0, 0, 0}, .src = {1, 3, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_0000003f13f1_32_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 3, .dst = {-1, 1, 3, 0, 0, 0}, .src = {1, 3, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_00001f2102f0_8_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 2, 1, 0, 0}, .src = {0, 2, 1, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00001f2102f0_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 2, 1, 0, 0}, .src = {0, 2, 1, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00001f2102f0_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 2, 1, 0, 0}, .src = {0, 2, 1, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f1201f0_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f1201f0_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f103_8_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {0, -1, 1, 2, 0, 0}, .src = {3, 1, 2, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f103_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {0, -1, 1, 2, 0, 0}, .src = {3, 1, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f103_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {0, -1, 1, 2, 0, 0}, .src = {3, 1, 2, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f130_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {3, -1, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00002f12f130_16_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {3, -1, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00002f12f130_32_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {3, -1, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00002f3203f0_8_u8_1101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 3, 2, 0, 0}, .src = {0, 3, 2, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_permute_00002f3203f0_16_u8_1101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 3, 2, 0, 0}, .src = {0, 3, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_permute_00003f2302f0_16_u8_1101_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 0, 2, 3, 0, 0}, .src = {0, 2, 3, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_permute_00003f2312f1_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 1, 2, 3, 0, 0}, .src = {1, 2, 3, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00003f2312f1_16_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 4, .dst = {-1, 1, 2, 3, 0, 0}, .src = {1, 2, 3, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_001f213203f0_8_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 5, .dst = {-1, 0, 3, 2, 1, 0}, .src = {0, 3, 2, 1, -1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_001f213203f0_16_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 5, .dst = {-1, 0, 3, 2, 1, 0}, .src = {0, 3, 2, 1, -1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_001f213203f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 5, .dst = {-1, 0, 3, 2, 1, 0}, .src = {0, 3, 2, 1, -1, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_002f123103f0_8_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 5, .dst = {-1, 0, 3, 1, 2, 0}, .src = {0, 3, 1, 2, -1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_002f123103f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 5, .dst = {-1, 0, 3, 1, 2, 0}, .src = {0, 3, 1, 2, -1, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_003f231201f0_16_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 5, .dst = {-1, 0, 1, 2, 3, 0}, .src = {0, 1, 2, 3, -1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_003f231201f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 5, .dst = {-1, 0, 1, 2, 3, 0}, .src = {0, 1, 2, 3, -1, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_2f12f13f03f0_8_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 6, .dst = {-1, 0, 3, -1, 1, 2}, .src = {0, 3, -1, 1, 2, -1} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_2f12f13f03f0_16_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 6, .dst = {-1, 0, 3, -1, 1, 2}, .src = {0, 3, -1, 1, 2, -1} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_2f12f13f03f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .move = { .num_moves = 6, .dst = {-1, 0, 3, -1, 1, 2}, .src = {0, 3, -1, 1, 2, -1} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_copy_000000002010_8_u8_0110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 2, .dst = {1, 2, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_copy_000000002010_16_u8_0110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 2, .dst = {1, 2, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_copy_000000002010_32_u8_0110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 2, .dst = {1, 2, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_copy_000000103120_8_u8_1110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 3, .dst = {2, 3, 1, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000103120_16_u8_1110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 3, .dst = {2, 3, 1, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000103120_32_u8_1110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 3, .dst = {2, 3, 1, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000302010_8_u8_1110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 3, .dst = {1, 2, 3, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000302010_16_u8_1110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 3, .dst = {1, 2, 3, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000302010_32_u8_1110_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 3, .dst = {1, 2, 3, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_001f01f03020_8_u8_1111_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 5, .dst = {2, 3, -1, 0, 1, 0}, .src = {0, 0, 0, 1, -1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_copy_001f01f03020_16_u8_1111_neon, { .uop = SWS_UOP_COPY, .move = { .num_moves = 5, .dst = {2, 3, -1, 0, 1, 0}, .src = {0, 0, 0, 1, -1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_000000000001_32_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {1, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000002_32_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {2, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000003_8_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000003_16_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000003_32_u8_0001_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {0, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_permute_000000000010_8_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000010_16_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000010_32_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000013_8_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000013_16_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000013_32_u8_0010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {1, 0, 0, 0, 0, 0}, .src = {3, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_permute_000000000020_8_u8_0100_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {2, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x4 })
ENTRY(ff_sws_permute_000000000020_32_u8_0100_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {2, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x4 })
ENTRY(ff_sws_permute_000000000030_8_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000030_16_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000030_32_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000031_32_u8_1000_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 1, .dst = {3, 0, 0, 0, 0, 0}, .src = {1, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_permute_000000000130_32_u8_1001_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {3, 0, 0, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x9 })
ENTRY(ff_sws_permute_000000000310_8_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 3, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000000310_16_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {1, 0, 0, 0, 0, 0}, .src = {0, 3, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000000320_32_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {2, 0, 0, 0, 0, 0}, .src = {0, 3, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_000000001031_32_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {3, 1, 0, 0, 0, 0}, .src = {1, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_000000001301_8_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {0, 1, 0, 0, 0, 0}, .src = {1, 3, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000002032_8_u8_1100_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {3, 2, 0, 0, 0, 0}, .src = {2, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xc })
ENTRY(ff_sws_permute_000000002032_32_u8_1100_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {3, 2, 0, 0, 0, 0}, .src = {2, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xc })
ENTRY(ff_sws_permute_000000002302_16_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {0, 2, 0, 0, 0, 0}, .src = {2, 3, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_000000002302_32_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 2, .dst = {0, 2, 0, 0, 0, 0}, .src = {2, 3, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_000000102132_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {3, 2, 1, 0, 0, 0}, .src = {2, 1, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000102132_16_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {3, 2, 1, 0, 0, 0}, .src = {2, 1, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000102132_32_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {3, 2, 1, 0, 0, 0}, .src = {2, 1, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000132102_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {0, 2, 1, 0, 0, 0}, .src = {2, 1, 3, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_0000001f01f0_8_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 0, 1, 0, 0, 0}, .src = {0, 1, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_0000001f01f0_16_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 0, 1, 0, 0, 0}, .src = {0, 1, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_0000001f01f0_32_u8_0011_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 0, 1, 0, 0, 0}, .src = {0, 1, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_permute_000000201231_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {3, 1, 2, 0, 0, 0}, .src = {1, 2, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000201231_32_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {3, 1, 2, 0, 0, 0}, .src = {1, 2, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_000000231201_8_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {0, 1, 2, 0, 0, 0}, .src = {1, 2, 3, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_000000231201_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {0, 1, 2, 0, 0, 0}, .src = {1, 2, 3, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_000000231201_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {0, 1, 2, 0, 0, 0}, .src = {1, 2, 3, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_0000002f02f0_8_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 0, 2, 0, 0, 0}, .src = {0, 2, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_0000002f02f0_16_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 0, 2, 0, 0, 0}, .src = {0, 2, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_0000002f02f0_32_u8_0101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 0, 2, 0, 0, 0}, .src = {0, 2, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_permute_0000002f12f1_8_u8_0110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 1, 2, 0, 0, 0}, .src = {1, 2, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_permute_0000002f12f1_16_u8_0110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 1, 2, 0, 0, 0}, .src = {1, 2, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_permute_0000002f12f1_32_u8_0110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 1, 2, 0, 0, 0}, .src = {1, 2, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_permute_0000003f13f1_8_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 1, 3, 0, 0, 0}, .src = {1, 3, -1, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_0000003f13f1_16_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 1, 3, 0, 0, 0}, .src = {1, 3, -1, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_0000003f13f1_32_u8_1010_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 3, .dst = {-1, 1, 3, 0, 0, 0}, .src = {1, 3, -1, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xa })
ENTRY(ff_sws_permute_00001f2102f0_8_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 2, 1, 0, 0}, .src = {0, 2, 1, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00001f2102f0_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 2, 1, 0, 0}, .src = {0, 2, 1, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00001f2102f0_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 2, 1, 0, 0}, .src = {0, 2, 1, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f1201f0_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f1201f0_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f103_8_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {0, -1, 1, 2, 0, 0}, .src = {3, 1, 2, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f103_16_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {0, -1, 1, 2, 0, 0}, .src = {3, 1, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f103_32_u8_0111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {0, -1, 1, 2, 0, 0}, .src = {3, 1, 2, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_permute_00002f12f130_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {3, -1, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00002f12f130_16_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {3, -1, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00002f12f130_32_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {3, -1, 1, 2, 0, 0}, .src = {0, 1, 2, -1, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00002f3203f0_8_u8_1101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 3, 2, 0, 0}, .src = {0, 3, 2, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_permute_00002f3203f0_16_u8_1101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 3, 2, 0, 0}, .src = {0, 3, 2, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_permute_00003f2302f0_16_u8_1101_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 0, 2, 3, 0, 0}, .src = {0, 2, 3, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_permute_00003f2312f1_8_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 1, 2, 3, 0, 0}, .src = {1, 2, 3, -1, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_00003f2312f1_16_u8_1110_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 4, .dst = {-1, 1, 2, 3, 0, 0}, .src = {1, 2, 3, -1, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_permute_001f213203f0_8_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 5, .dst = {-1, 0, 3, 2, 1, 0}, .src = {0, 3, 2, 1, -1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_001f213203f0_16_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 5, .dst = {-1, 0, 3, 2, 1, 0}, .src = {0, 3, 2, 1, -1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_001f213203f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 5, .dst = {-1, 0, 3, 2, 1, 0}, .src = {0, 3, 2, 1, -1, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_002f123103f0_8_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 5, .dst = {-1, 0, 3, 1, 2, 0}, .src = {0, 3, 1, 2, -1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_002f123103f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 5, .dst = {-1, 0, 3, 1, 2, 0}, .src = {0, 3, 1, 2, -1, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_003f231201f0_16_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 5, .dst = {-1, 0, 1, 2, 3, 0}, .src = {0, 1, 2, 3, -1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_003f231201f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 5, .dst = {-1, 0, 1, 2, 3, 0}, .src = {0, 1, 2, 3, -1, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_2f12f13f03f0_8_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 6, .dst = {-1, 0, 3, -1, 1, 2}, .src = {0, 3, -1, 1, 2, -1} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_2f12f13f03f0_16_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 6, .dst = {-1, 0, 3, -1, 1, 2}, .src = {0, 3, -1, 1, 2, -1} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_permute_2f12f13f03f0_32_u8_1111_neon, { .uop = SWS_UOP_PERMUTE, .par.move = { .num_moves = 6, .dst = {-1, 0, 3, -1, 1, 2}, .src = {0, 3, -1, 1, 2, -1} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_copy_000000002010_8_u8_0110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 2, .dst = {1, 2, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_copy_000000002010_16_u8_0110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 2, .dst = {1, 2, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_copy_000000002010_32_u8_0110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 2, .dst = {1, 2, 0, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_copy_000000103120_8_u8_1110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 3, .dst = {2, 3, 1, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000103120_16_u8_1110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 3, .dst = {2, 3, 1, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000103120_32_u8_1110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 3, .dst = {2, 3, 1, 0, 0, 0}, .src = {0, 1, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000302010_8_u8_1110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 3, .dst = {1, 2, 3, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000302010_16_u8_1110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 3, .dst = {1, 2, 3, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_000000302010_32_u8_1110_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 3, .dst = {1, 2, 3, 0, 0, 0}, .src = {0, 0, 0, 0, 0, 0} }, .block_size = 32, .type = SWS_PIXEL_U8, .mask = 0xe })
ENTRY(ff_sws_copy_001f01f03020_8_u8_1111_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 5, .dst = {2, 3, -1, 0, 1, 0}, .src = {0, 0, 0, 1, -1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_copy_001f01f03020_16_u8_1111_neon, { .uop = SWS_UOP_COPY, .par.move = { .num_moves = 5, .dst = {2, 3, -1, 0, 1, 0}, .src = {0, 0, 0, 1, -1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0xf })
ENTRY(ff_sws_swap_bytes_8_u16_0001_neon, { .uop = SWS_UOP_SWAP_BYTES, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_swap_bytes_8_u16_0010_neon, { .uop = SWS_UOP_SWAP_BYTES, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x2 })
ENTRY(ff_sws_swap_bytes_8_u16_0011_neon, { .uop = SWS_UOP_SWAP_BYTES, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x3 })
@@ -253,162 +253,162 @@ ENTRY(ff_sws_max_8_f32_0011_neon, { .uop = SWS_UOP_MAX, .block_size = 8, .type =
ENTRY(ff_sws_max_8_f32_0111_neon, { .uop = SWS_UOP_MAX, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_max_8_f32_1001_neon, { .uop = SWS_UOP_MAX, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_max_8_f32_1111_neon, { .uop = SWS_UOP_MAX, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_unpack_0121_8_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {1, 2, 1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0121_16_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {1, 2, 1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0233_8_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {3, 3, 2, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0233_16_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {3, 3, 2, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0332_8_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {2, 3, 3, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0332_16_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {2, 3, 3, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0444_8_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {4, 4, 4, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0444_16_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {4, 4, 4, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0555_8_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {5, 5, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0555_16_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {5, 5, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0565_8_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {5, 6, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0565_16_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {5, 6, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_2aaa_8_u32_0010_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {10, 10, 10, 2} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x2 })
ENTRY(ff_sws_unpack_2aaa_8_u32_0111_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {10, 10, 10, 2} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x7 })
ENTRY(ff_sws_unpack_aaa2_8_u32_0100_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {2, 10, 10, 10} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x4 })
ENTRY(ff_sws_unpack_aaa2_8_u32_1110_neon, { .uop = SWS_UOP_UNPACK, .pack = { .pattern = {2, 10, 10, 10} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xe })
ENTRY(ff_sws_pack_0121_8_u8_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {1, 2, 1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0121_16_u8_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {1, 2, 1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0233_8_u8_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {3, 3, 2, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0233_16_u8_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {3, 3, 2, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0332_8_u8_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {2, 3, 3, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0332_16_u8_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {2, 3, 3, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0444_8_u16_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {4, 4, 4, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0444_16_u16_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {4, 4, 4, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0555_8_u16_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {5, 5, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0555_16_u16_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {5, 5, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0565_8_u16_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {5, 6, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0565_16_u16_0111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {5, 6, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_2aaa_8_u32_1111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {10, 10, 10, 2} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xf })
ENTRY(ff_sws_pack_aaa2_8_u32_1111_neon, { .uop = SWS_UOP_PACK, .pack = { .pattern = {2, 10, 10, 10} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xf })
ENTRY(ff_sws_lshift_1_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 1 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_1_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 1 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_1_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 1 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_2_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 2 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_2_8_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 2 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_2_8_u32_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 2 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x7 })
ENTRY(ff_sws_lshift_2_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 2 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_2_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 2 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_3_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 3 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_4_8_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_4_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_4_8_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_4_16_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_4_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_4_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_5_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 5 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_6_8_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_6_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_6_8_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_6_16_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_6_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_6_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_7_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 7 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_8_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 8 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_8_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .shift = { .amount = 8 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_rshift_4_8_u16_0001_neon, { .uop = SWS_UOP_RSHIFT, .shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_rshift_4_8_u16_0010_neon, { .uop = SWS_UOP_RSHIFT, .shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x2 })
ENTRY(ff_sws_rshift_4_8_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_rshift_4_16_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_rshift_6_8_u16_0001_neon, { .uop = SWS_UOP_RSHIFT, .shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_rshift_6_8_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_rshift_6_16_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_clear_0fff_8_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_0fff_8_u8_1011_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xb })
ENTRY(ff_sws_clear_0fff_8_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_0fff_8_u16_1101_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xd })
ENTRY(ff_sws_clear_0fff_16_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x8 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_0fff_16_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x8 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_8_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_8_u8_1011_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xb })
ENTRY(ff_sws_clear_1fff_8_u8_1101_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_clear_1fff_8_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_16_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x8, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_16_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x8, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_ff1f_8_u8_0010_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x2, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_clear_ff1f_8_u16_0010_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x2, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x2 })
ENTRY(ff_sws_clear_ff1f_16_u8_0010_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x2, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_clear_ff1f_16_u16_0010_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x2, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x2 })
ENTRY(ff_sws_clear_fff0_8_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x1 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff0_16_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x1 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_8_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_8_u8_1101_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_clear_fff1_8_u16_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_8_u16_1101_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xd })
ENTRY(ff_sws_clear_fff1_16_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_16_u8_0111_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_clear_fff1_16_u16_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_16_u16_0111_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_clear_ffff_8_u8_0011_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_clear_ffff_8_u8_0101_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_clear_ffff_8_u8_1100_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xc })
ENTRY(ff_sws_clear_ffff_8_u16_1100_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xc })
ENTRY(ff_sws_clear_ffff_8_u32_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x1 })
ENTRY(ff_sws_clear_ffff_8_u32_0010_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x2 })
ENTRY(ff_sws_clear_ffff_8_u32_0101_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x5 })
ENTRY(ff_sws_clear_ffff_8_u32_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x8 })
ENTRY(ff_sws_clear_ffff_8_u32_1010_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xa })
ENTRY(ff_sws_clear_ffff_8_u32_1011_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xb })
ENTRY(ff_sws_clear_ffff_8_u32_1101_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xd })
ENTRY(ff_sws_clear_ffff_16_u8_0011_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_clear_ffff_16_u8_0110_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_clear_ffff_16_u16_0001_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_clear_ffff_16_u16_0011_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x3 })
ENTRY(ff_sws_clear_ffff_16_u16_0111_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_clear_ffff_16_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_linear_000000000f_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_00000000fc_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xffff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_00000000ff_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfffe8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_000000c000_8_f32_0010_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfffbf }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x2 })
ENTRY(ff_sws_linear_000373dcc7_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x421, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_0003f3fccf_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000c00c00c_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000c30cc0f_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfadae }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000ff3fcfc_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfa118 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000ff3fcff_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xfa108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_c000000000_8_f32_1000_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xbffff }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x8 })
ENTRY(ff_sws_linear_c00000000f_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xbffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_c0000000fc_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xbfff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_c003f3fccf_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xbb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_c00c00c00c_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xbefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_c00ff3fcff_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR, .linear = { .one = 0x0, .zero = 0xba108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_fma_000000000f_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_fma_00000000fc_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xffff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_fma_00000000ff_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfffe8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_fma_000000c000_8_f32_0010_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfffbf }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x2 })
ENTRY(ff_sws_linear_fma_000373dcc7_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x421, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_0003f3fccf_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000c00c00c_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000c30cc0f_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfadae }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000ff3fcfc_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfa118 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000ff3fcff_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xfa108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_c000000000_8_f32_1000_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xbffff }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x8 })
ENTRY(ff_sws_linear_fma_c00000000f_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xbffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_fma_c0000000fc_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xbfff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_fma_c003f3fccf_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xbb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_fma_c00c00c00c_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xbefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_fma_c00ff3fcff_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR_FMA, .linear = { .one = 0x0, .zero = 0xba108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_0325_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {5, 2, 3, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_032f_4_8_f32_1110_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 2, 3, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xe })
ENTRY(ff_sws_dither_2305_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {5, 0, 3, 2}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_230f_4_8_f32_1110_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 3, 2}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xe })
ENTRY(ff_sws_dither_3000_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 0, 3}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_302f_4_8_f32_1110_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 2, 0, 3}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xe })
ENTRY(ff_sws_dither_3ff0_4_8_f32_1001_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 0, 3}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_dither_5023_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {3, 2, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_5032_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {2, 3, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_5230_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 3, 2, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_5ff0_4_8_f32_1001_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_dither_5fff_4_8_f32_1000_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x8 })
ENTRY(ff_sws_dither_f023_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {3, 2, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f032_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {2, 3, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f203_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {3, 0, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f230_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 3, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f2f0_4_8_f32_0101_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x5 })
ENTRY(ff_sws_dither_f2ff_4_8_f32_0100_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x4 })
ENTRY(ff_sws_dither_f302_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {2, 0, 3, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_ff30_4_8_f32_0011_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 3, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x3 })
ENTRY(ff_sws_dither_ff3f_4_8_f32_0010_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 3, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x2 })
ENTRY(ff_sws_dither_fff0_4_8_f32_0001_neon, { .uop = SWS_UOP_DITHER, .dither = { .y_offset = {0, 0, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_unpack_0121_8_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {1, 2, 1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0121_16_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {1, 2, 1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0233_8_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {3, 3, 2, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0233_16_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {3, 3, 2, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0332_8_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {2, 3, 3, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0332_16_u8_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {2, 3, 3, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_unpack_0444_8_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {4, 4, 4, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0444_16_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {4, 4, 4, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0555_8_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {5, 5, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0555_16_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {5, 5, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0565_8_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {5, 6, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_0565_16_u16_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {5, 6, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_unpack_2aaa_8_u32_0010_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {10, 10, 10, 2} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x2 })
ENTRY(ff_sws_unpack_2aaa_8_u32_0111_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {10, 10, 10, 2} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x7 })
ENTRY(ff_sws_unpack_aaa2_8_u32_0100_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {2, 10, 10, 10} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x4 })
ENTRY(ff_sws_unpack_aaa2_8_u32_1110_neon, { .uop = SWS_UOP_UNPACK, .par.pack = { .pattern = {2, 10, 10, 10} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xe })
ENTRY(ff_sws_pack_0121_8_u8_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {1, 2, 1, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0121_16_u8_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {1, 2, 1, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0233_8_u8_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {3, 3, 2, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0233_16_u8_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {3, 3, 2, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0332_8_u8_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {2, 3, 3, 0} }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0332_16_u8_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {2, 3, 3, 0} }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_pack_0444_8_u16_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {4, 4, 4, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0444_16_u16_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {4, 4, 4, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0555_8_u16_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {5, 5, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0555_16_u16_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {5, 5, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0565_8_u16_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {5, 6, 5, 0} }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_0565_16_u16_0111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {5, 6, 5, 0} }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_pack_2aaa_8_u32_1111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {10, 10, 10, 2} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xf })
ENTRY(ff_sws_pack_aaa2_8_u32_1111_neon, { .uop = SWS_UOP_PACK, .par.pack = { .pattern = {2, 10, 10, 10} }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xf })
ENTRY(ff_sws_lshift_1_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 1 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_1_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 1 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_1_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 1 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_2_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 2 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_2_8_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 2 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_2_8_u32_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 2 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x7 })
ENTRY(ff_sws_lshift_2_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 2 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_2_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 2 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_3_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 3 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_4_8_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_4_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_4_8_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_4_16_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_4_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_4_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_5_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 5 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_6_8_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_6_8_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_6_8_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_6_16_u16_0001_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_lshift_6_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_6_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_lshift_7_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 7 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_8_16_u16_0111_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 8 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_lshift_8_16_u16_1110_neon, { .uop = SWS_UOP_LSHIFT, .par.shift = { .amount = 8 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0xe })
ENTRY(ff_sws_rshift_4_8_u16_0001_neon, { .uop = SWS_UOP_RSHIFT, .par.shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_rshift_4_8_u16_0010_neon, { .uop = SWS_UOP_RSHIFT, .par.shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x2 })
ENTRY(ff_sws_rshift_4_8_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .par.shift = { .amount = 4 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_rshift_4_16_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .par.shift = { .amount = 4 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_rshift_6_8_u16_0001_neon, { .uop = SWS_UOP_RSHIFT, .par.shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_rshift_6_8_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .par.shift = { .amount = 6 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_rshift_6_16_u16_0111_neon, { .uop = SWS_UOP_RSHIFT, .par.shift = { .amount = 6 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_clear_0fff_8_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_0fff_8_u8_1011_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xb })
ENTRY(ff_sws_clear_0fff_8_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_0fff_8_u16_1101_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x8 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xd })
ENTRY(ff_sws_clear_0fff_16_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x8 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_0fff_16_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x8 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_8_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_8_u8_1011_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xb })
ENTRY(ff_sws_clear_1fff_8_u8_1101_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_clear_1fff_8_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x8, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_16_u8_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x8, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x8 })
ENTRY(ff_sws_clear_1fff_16_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x8, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_clear_ff1f_8_u8_0010_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x2, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_clear_ff1f_8_u16_0010_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x2, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x2 })
ENTRY(ff_sws_clear_ff1f_16_u8_0010_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x2, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x2 })
ENTRY(ff_sws_clear_ff1f_16_u16_0010_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x2, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x2 })
ENTRY(ff_sws_clear_fff0_8_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x1 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff0_16_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x1 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_8_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_8_u8_1101_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xd })
ENTRY(ff_sws_clear_fff1_8_u16_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_8_u16_1101_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xd })
ENTRY(ff_sws_clear_fff1_16_u8_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_16_u8_0111_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x7 })
ENTRY(ff_sws_clear_fff1_16_u16_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_clear_fff1_16_u16_0111_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x1, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_clear_ffff_8_u8_0011_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_clear_ffff_8_u8_0101_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0x5 })
ENTRY(ff_sws_clear_ffff_8_u8_1100_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U8, .mask = 0xc })
ENTRY(ff_sws_clear_ffff_8_u16_1100_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U16, .mask = 0xc })
ENTRY(ff_sws_clear_ffff_8_u32_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x1 })
ENTRY(ff_sws_clear_ffff_8_u32_0010_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x2 })
ENTRY(ff_sws_clear_ffff_8_u32_0101_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x5 })
ENTRY(ff_sws_clear_ffff_8_u32_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0x8 })
ENTRY(ff_sws_clear_ffff_8_u32_1010_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xa })
ENTRY(ff_sws_clear_ffff_8_u32_1011_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xb })
ENTRY(ff_sws_clear_ffff_8_u32_1101_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 8, .type = SWS_PIXEL_U32, .mask = 0xd })
ENTRY(ff_sws_clear_ffff_16_u8_0011_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x3 })
ENTRY(ff_sws_clear_ffff_16_u8_0110_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U8, .mask = 0x6 })
ENTRY(ff_sws_clear_ffff_16_u16_0001_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x1 })
ENTRY(ff_sws_clear_ffff_16_u16_0011_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x3 })
ENTRY(ff_sws_clear_ffff_16_u16_0111_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x7 })
ENTRY(ff_sws_clear_ffff_16_u16_1000_neon, { .uop = SWS_UOP_CLEAR, .par.clear = { .one = 0x0, .zero = 0x0 }, .block_size = 16, .type = SWS_PIXEL_U16, .mask = 0x8 })
ENTRY(ff_sws_linear_000000000f_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_00000000fc_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xffff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_00000000ff_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfffe8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_000000c000_8_f32_0010_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfffbf }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x2 })
ENTRY(ff_sws_linear_000373dcc7_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x421, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_0003f3fccf_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000c00c00c_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000c30cc0f_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfadae }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000ff3fcfc_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfa118 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_000ff3fcff_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xfa108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_c000000000_8_f32_1000_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xbffff }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x8 })
ENTRY(ff_sws_linear_c00000000f_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xbffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_c0000000fc_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xbfff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_c003f3fccf_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xbb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_c00c00c00c_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xbefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_c00ff3fcff_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR, .par.lin = { .one = 0x0, .zero = 0xba108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_fma_000000000f_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_fma_00000000fc_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xffff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_fma_00000000ff_8_f32_0001_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfffe8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })
ENTRY(ff_sws_linear_fma_000000c000_8_f32_0010_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfffbf }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x2 })
ENTRY(ff_sws_linear_fma_000373dcc7_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x421, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_0003f3fccf_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000c00c00c_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000c30cc0f_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfadae }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000ff3fcfc_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfa118 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_000ff3fcff_8_f32_0111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xfa108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_linear_fma_c000000000_8_f32_1000_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xbffff }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x8 })
ENTRY(ff_sws_linear_fma_c00000000f_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xbffee }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_fma_c0000000fc_8_f32_1001_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xbfff8 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_linear_fma_c003f3fccf_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xbb10a }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_fma_c00c00c00c_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xbefbe }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_linear_fma_c00ff3fcff_8_f32_1111_neon, { .uop = SWS_UOP_LINEAR_FMA, .par.lin = { .one = 0x0, .zero = 0xba108 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_0325_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {5, 2, 3, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_032f_4_8_f32_1110_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 2, 3, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xe })
ENTRY(ff_sws_dither_2305_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {5, 0, 3, 2}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_230f_4_8_f32_1110_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 3, 2}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xe })
ENTRY(ff_sws_dither_3000_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 0, 3}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_302f_4_8_f32_1110_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 2, 0, 3}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xe })
ENTRY(ff_sws_dither_3ff0_4_8_f32_1001_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 0, 3}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_dither_5023_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {3, 2, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_5032_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {2, 3, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_5230_4_8_f32_1111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 3, 2, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0xf })
ENTRY(ff_sws_dither_5ff0_4_8_f32_1001_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x9 })
ENTRY(ff_sws_dither_5fff_4_8_f32_1000_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 0, 5}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x8 })
ENTRY(ff_sws_dither_f023_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {3, 2, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f032_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {2, 3, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f203_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {3, 0, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f230_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 3, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_f2f0_4_8_f32_0101_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x5 })
ENTRY(ff_sws_dither_f2ff_4_8_f32_0100_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 2, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x4 })
ENTRY(ff_sws_dither_f302_4_8_f32_0111_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {2, 0, 3, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x7 })
ENTRY(ff_sws_dither_ff30_4_8_f32_0011_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 3, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x3 })
ENTRY(ff_sws_dither_ff3f_4_8_f32_0010_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 3, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x2 })
ENTRY(ff_sws_dither_fff0_4_8_f32_0001_neon, { .uop = SWS_UOP_DITHER, .par.dither = { .y_offset = {0, 0, 0, 0}, .size_log2 = 4 }, .block_size = 8, .type = SWS_PIXEL_F32, .mask = 0x1 })

View File

@@ -49,14 +49,7 @@ typedef struct SwsAArch64OpImplParams {
SwsCompMask mask;
SwsPixelType type;
uint8_t block_size;
union {
SwsShiftUOp shift;
SwsClearUOp clear;
SwsMoveUOp move;
SwsPackUOp pack;
SwsLinearUOp linear;
SwsDitherUOp dither;
};
SwsUOpParams par;
} SwsAArch64OpImplParams;
/* SwsCompMask-related helpers. */
@@ -75,7 +68,7 @@ static inline int linear_num_vregs(const SwsAArch64OpImplParams *params)
{
int count = 0;
for (int i = 0; i < 4 * 5; i++)
if (!(params->linear.zero & (1ULL << i)))
if (!(params->par.lin.zero & (1ULL << i)))
count++;
return (count + 3) / 4;
}

View File

@@ -31,9 +31,9 @@
static void swizzle_emit(SwsAArch64OpImplParams *out, uint8_t dst, uint8_t src)
{
int idx = out->move.num_moves++;
out->move.dst[idx] = dst;
out->move.src[idx] = src;
int idx = out->par.move.num_moves++;
out->par.move.dst[idx] = dst;
out->par.move.src[idx] = src;
}
static void convert_swizzle_to_moves(const SwsOp *op, SwsAArch64OpImplParams *out)
@@ -235,18 +235,18 @@ static int convert_to_aarch64_impl(SwsContext *ctx, const SwsOpList *ops, int n,
break;
case SWS_UOP_UNPACK:
for (int i = 0; i < 4; i++)
out->pack.pattern[i] = op->pack.pattern[i];
out->par.pack.pattern[i] = op->pack.pattern[i];
break;
case SWS_UOP_PACK:
out->mask = 0;
for (int i = 0; i < 4 && op->pack.pattern[i]; i++)
out->mask |= SWS_COMP(i);
for (int i = 0; i < 4; i++)
out->pack.pattern[i] = op->pack.pattern[i];
out->par.pack.pattern[i] = op->pack.pattern[i];
break;
case SWS_UOP_LSHIFT:
case SWS_UOP_RSHIFT:
out->shift.amount = op->shift.amount;
out->par.shift.amount = op->shift.amount;
break;
case SWS_UOP_CLEAR:
out->mask = 0;
@@ -254,13 +254,13 @@ static int convert_to_aarch64_impl(SwsContext *ctx, const SwsOpList *ops, int n,
if (op->clear.mask & SWS_COMP(i)) {
out->mask |= SWS_COMP(i);
if (op->clear.value[i].num == 0) {
out->clear.zero |= SWS_COMP(i);
out->par.clear.zero |= SWS_COMP(i);
} else {
uint32_t val = op->clear.value[i].num / op->clear.value[i].den;
if ((op->type == SWS_PIXEL_U8 && val == UINT8_MAX) ||
(op->type == SWS_PIXEL_U16 && val == UINT16_MAX) ||
(op->type == SWS_PIXEL_U32 && val == UINT32_MAX))
out->clear.one |= SWS_COMP(i);
out->par.clear.one |= SWS_COMP(i);
}
}
}
@@ -271,16 +271,16 @@ static int convert_to_aarch64_impl(SwsContext *ctx, const SwsOpList *ops, int n,
for (int i = 0; i < 4; i++) {
if (!SWS_OP_NEEDED(op, i) || !(op->lin.mask & SWS_MASK_ROW(i))) {
for (int j = 0; j < 5; j++)
out->linear.zero |= SWS_MASK(i, j);
out->par.lin.zero |= SWS_MASK(i, j);
continue;
}
out->mask |= SWS_COMP(i);
for (int j = 0; j < 5; j++) {
const AVRational64 k = op->lin.m[i][j];
if (j < 4 && k.num == k.den)
out->linear.one |= SWS_MASK(i, j);
out->par.lin.one |= SWS_MASK(i, j);
else if (k.num == 0)
out->linear.zero |= SWS_MASK(i, j);
out->par.lin.zero |= SWS_MASK(i, j);
}
}
break;
@@ -290,9 +290,9 @@ static int convert_to_aarch64_impl(SwsContext *ctx, const SwsOpList *ops, int n,
op->dither.y_offset[2] >= 0,
op->dither.y_offset[3] >= 0);
LOOP(out->mask, i) {
out->dither.y_offset[i] = op->dither.y_offset[i];
out->par.dither.y_offset[i] = op->dither.y_offset[i];
}
out->dither.size_log2 = op->dither.size_log2;
out->par.dither.size_log2 = op->dither.size_log2;
break;
}

View File

@@ -105,6 +105,8 @@ static int aarch64_op_impl_cmp(const void *a, const void *b)
{
const SwsAArch64OpImplParams *pa = (const SwsAArch64OpImplParams *) a;
const SwsAArch64OpImplParams *pb = (const SwsAArch64OpImplParams *) b;
const SwsUOpParams *para = &pa->par;
const SwsUOpParams *parb = &pb->par;
if (pa->uop != pb->uop)
return (int) pa->uop - pb->uop;
@@ -112,47 +114,47 @@ static int aarch64_op_impl_cmp(const void *a, const void *b)
switch (pa->uop) {
case SWS_UOP_PERMUTE:
case SWS_UOP_COPY: {
uint64_t ia = move_to_mask(&pa->move);
uint64_t ib = move_to_mask(&pb->move);
uint64_t ia = move_to_mask(&para->move);
uint64_t ib = move_to_mask(&parb->move);
if (ia != ib)
return (int64_t) (ia - ib) < 0 ? -1 : 1;
break;
}
case SWS_UOP_UNPACK:
case SWS_UOP_PACK: {
uint16_t ia = pack_to_mask(&pa->pack);
uint16_t ib = pack_to_mask(&pb->pack);
uint16_t ia = pack_to_mask(&para->pack);
uint16_t ib = pack_to_mask(&parb->pack);
if (ia != ib)
return (int) ia - ib;
break;
}
case SWS_UOP_LSHIFT:
case SWS_UOP_RSHIFT:
if (pa->shift.amount != pb->shift.amount)
return (int) pa->shift.amount - pb->shift.amount;
if (para->shift.amount != parb->shift.amount)
return (int) para->shift.amount - parb->shift.amount;
break;
case SWS_UOP_CLEAR: {
uint16_t ia = clear_to_mask(&pa->clear);
uint16_t ib = clear_to_mask(&pb->clear);
uint16_t ia = clear_to_mask(&para->clear);
uint16_t ib = clear_to_mask(&parb->clear);
if (ia != ib)
return (int) ia - ib;
break;
}
case SWS_UOP_LINEAR:
case SWS_UOP_LINEAR_FMA: {
uint64_t ia = linear_to_mask(&pa->linear);
uint64_t ib = linear_to_mask(&pb->linear);
uint64_t ia = linear_to_mask(&para->lin);
uint64_t ib = linear_to_mask(&parb->lin);
if (ia != ib)
return (int64_t) (ia - ib) < 0 ? -1 : 1;
break;
}
case SWS_UOP_DITHER: {
uint16_t ia = dither_to_mask(pa, &pa->dither);
uint16_t ib = dither_to_mask(pb, &pb->dither);
uint16_t ia = dither_to_mask(pa, &para->dither);
uint16_t ib = dither_to_mask(pb, &parb->dither);
if (ia != ib)
return (int) ia - ib;
if (pa->dither.size_log2 != pb->dither.size_log2)
return (int) pa->dither.size_log2 - pb->dither.size_log2;
if (para->dither.size_log2 != parb->dither.size_log2)
return (int) para->dither.size_log2 - parb->dither.size_log2;
break;
}
}
@@ -301,29 +303,30 @@ static const char pixel_type_names[SWS_PIXEL_TYPE_NB][4] = {
static void impl_func_name(AVBPrint *bp, const SwsAArch64OpImplParams *params)
{
const SwsUOpParams *par = &params->par;
av_bprintf(bp, "ff_sws_%s", op_type_names[params->uop]);
switch (params->uop) {
case SWS_UOP_PERMUTE:
case SWS_UOP_COPY:
av_bprintf(bp, "_%012" PRIx64, move_to_mask(&params->move));
av_bprintf(bp, "_%012" PRIx64, move_to_mask(&par->move));
break;
case SWS_UOP_UNPACK:
case SWS_UOP_PACK:
av_bprintf(bp, "_%04x", pack_to_mask(&params->pack));
av_bprintf(bp, "_%04x", pack_to_mask(&par->pack));
break;
case SWS_UOP_LSHIFT:
case SWS_UOP_RSHIFT:
av_bprintf(bp, "_%u", params->shift.amount);
av_bprintf(bp, "_%u", par->shift.amount);
break;
case SWS_UOP_CLEAR:
av_bprintf(bp, "_%04x", clear_to_mask(&params->clear));
av_bprintf(bp, "_%04x", clear_to_mask(&par->clear));
break;
case SWS_UOP_LINEAR:
case SWS_UOP_LINEAR_FMA:
av_bprintf(bp, "_%010" PRIx64, linear_to_mask(&params->linear));
av_bprintf(bp, "_%010" PRIx64, linear_to_mask(&par->lin));
break;
case SWS_UOP_DITHER:
av_bprintf(bp, "_%04x_%u", dither_to_mask(params, &params->dither), params->dither.size_log2);
av_bprintf(bp, "_%04x_%u", dither_to_mask(params, &par->dither), par->dither.size_log2);
break;
}
av_bprintf(bp, "_%u_%s_%04x_neon", params->block_size, pixel_type_names[params->type], nibble_mask(params->mask));
@@ -369,41 +372,42 @@ static const char pixel_types[SWS_PIXEL_TYPE_NB][32] = {
static void serialize_op(AVBPrint *bp, const SwsAArch64OpImplParams *params)
{
const SwsUOpParams *par = &params->par;
av_bprintf(bp, "ENTRY(");
impl_func_name(bp, params);
av_bprintf(bp, ", { .uop = %s", op_types[params->uop]);
switch (params->uop) {
case SWS_UOP_PERMUTE:
case SWS_UOP_COPY:
av_bprintf(bp, ", .move = { .num_moves = %d, .dst = {%d, %d, %d, %d, %d, %d}, .src = {%d, %d, %d, %d, %d, %d} }",
params->move.num_moves,
params->move.dst[0], params->move.dst[1], params->move.dst[2],
params->move.dst[3], params->move.dst[4], params->move.dst[5],
params->move.src[0], params->move.src[1], params->move.src[2],
params->move.src[3], params->move.src[4], params->move.src[5]);
av_bprintf(bp, ", .par.move = { .num_moves = %d, .dst = {%d, %d, %d, %d, %d, %d}, .src = {%d, %d, %d, %d, %d, %d} }",
par->move.num_moves,
par->move.dst[0], par->move.dst[1], par->move.dst[2],
par->move.dst[3], par->move.dst[4], par->move.dst[5],
par->move.src[0], par->move.src[1], par->move.src[2],
par->move.src[3], par->move.src[4], par->move.src[5]);
break;
case SWS_UOP_UNPACK:
case SWS_UOP_PACK:
av_bprintf(bp, ", .pack = { .pattern = {%d, %d, %d, %d} }",
params->pack.pattern[0], params->pack.pattern[1],
params->pack.pattern[2], params->pack.pattern[3]);
av_bprintf(bp, ", .par.pack = { .pattern = {%d, %d, %d, %d} }",
par->pack.pattern[0], par->pack.pattern[1],
par->pack.pattern[2], par->pack.pattern[3]);
break;
case SWS_UOP_LSHIFT:
case SWS_UOP_RSHIFT:
av_bprintf(bp, ", .shift = { .amount = %u }", params->shift.amount);
av_bprintf(bp, ", .par.shift = { .amount = %u }", par->shift.amount);
break;
case SWS_UOP_CLEAR:
av_bprintf(bp, ", .clear = { .one = 0x%0x, .zero = 0x%0x }", params->clear.one, params->clear.zero);
av_bprintf(bp, ", .par.clear = { .one = 0x%0x, .zero = 0x%0x }", par->clear.one, par->clear.zero);
break;
case SWS_UOP_LINEAR:
case SWS_UOP_LINEAR_FMA:
av_bprintf(bp, ", .linear = { .one = 0x%x, .zero = 0x%x }", params->linear.one, params->linear.zero);
av_bprintf(bp, ", .par.lin = { .one = 0x%x, .zero = 0x%x }", par->lin.one, par->lin.zero);
break;
case SWS_UOP_DITHER:
av_bprintf(bp, ", .dither = { .y_offset = {%u, %u, %u, %u}, .size_log2 = %u }",
params->dither.y_offset[0], params->dither.y_offset[1],
params->dither.y_offset[2], params->dither.y_offset[3],
params->dither.size_log2);
av_bprintf(bp, ", .par.dither = { .y_offset = {%u, %u, %u, %u}, .size_log2 = %u }",
par->dither.y_offset[0], par->dither.y_offset[1],
par->dither.y_offset[2], par->dither.y_offset[3],
par->dither.size_log2);
break;
}
av_bprintf(bp, ", .block_size = %u, .type = %s, .mask = 0x%x })", params->block_size, pixel_types[params->type], params->mask);