From: Pan Li Date: Fri, 10 Nov 2023 02:57:00 +0000 (+0800) Subject: RISC-V: Support vec_init for trailing same element X-Git-Tag: basepoints/gcc-15~4828 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e7f4040d9d6ec40c48ada940168885d7dde03af9;p=thirdparty%2Fgcc.git RISC-V: Support vec_init for trailing same element This patch would like to support the vec_init for the trailing same element in the array. For example as below typedef double vnx16df __attribute__ ((vector_size (128))); __attribute__ ((noipa)) void f_vnx16df (double a, double b, double *out) { vnx16df v = {a, a, a, b, b, b, b, b, b, b, b, b, b, b, b, b}; *(vnx16df *) out = v; } Before this patch: f_vnx16df: vsetivli zero,16,e64,m8,ta,ma vfmv.v.f v8,fa0 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vs8r.v v8,0(a0) ret After this patch: f_vnx16df: vsetivli zero,16,e64,m8,ta,ma vfmv.v.f v16,fa1 vfslide1up.vf v8,v16,fa0 vmv8r.v v16,v8 vfslide1up.vf v8,v16,fa0 vmv8r.v v16,v8 vfslide1up.vf v8,v16,fa0 vs8r.v v8,0(a0) ret gcc/ChangeLog: * config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem): New fun impl to expand the insn when trailing same elements. (expand_vec_init): Try trailing same elements when vec_init. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c: New test. Signed-off-by: Pan Li --- diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index c32cd8abe6cf..c6c54c390762 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -2126,6 +2126,44 @@ expand_vector_init_merge_repeating_sequence (rtx target, } } +/* Subroutine of expand_vec_init to handle case + when all trailing elements of builder are same. + This works as follows: + (a) Use expand_insn interface to broadcast last vector element in TARGET. + (b) Insert remaining elements in TARGET using insr. + + ??? The heuristic used is to do above if number of same trailing elements + is at least 3/4 of total number of elements, loosely based on + heuristic from mostly_zeros_p. May need fine-tuning. */ + +static bool +expand_vector_init_trailing_same_elem (rtx target, + const rtx_vector_builder &builder, + int nelts_reqd) +{ + int ndups = builder.count_dups (nelts_reqd - 1, -1, -1); + machine_mode mode = GET_MODE (target); + + if (ndups >= (3 * nelts_reqd) / 4) + { + rtx dup = expand_vector_broadcast (mode, builder.elt (nelts_reqd - 1)); + emit_move_insn (target, dup); + + for (int i = nelts_reqd - ndups - 1; i >= 0; i--) + { + unsigned int unspec + = FLOAT_MODE_P (mode) ? UNSPEC_VFSLIDE1UP : UNSPEC_VSLIDE1UP; + insn_code icode = code_for_pred_slide (unspec, mode); + rtx ops[] = {target, target, builder.elt (i)}; + emit_vlmax_insn (icode, BINARY_OP, ops); + } + + return true; + } + + return false; +} + /* Initialize register TARGET from the elements in PARALLEL rtx VALS. */ void @@ -2162,6 +2200,11 @@ expand_vec_init (rtx target, rtx vals) return; } + /* Case 4: Optimize trailing same elements sequence: + v = {y, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x}; */ + if (expand_vector_init_trailing_same_elem (target, v, nelts)) + return; + /* TODO: We will support more Initialization of vector in the future. */ } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c new file mode 100644 index 000000000000..eca36794ab52 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d" } */ + +#include + +typedef int64_t vnx16di __attribute__ ((vector_size (1024))); + +__attribute__ ((noipa)) void +f_vnx16di (int64_t a, int64_t b, int64_t *out) +{ + vnx16di v = { + a, a, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + }; + *(vnx16di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\s+v[0-9]+,\s*[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 2 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c new file mode 100644 index 000000000000..b4174b7f8fb4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef double vnx8df __attribute__ ((vector_size (64))); +typedef double vnx16df __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_vnx8df (double a, double b, double *out) +{ + vnx8df v = {a, b, b, b, b, b, b, b}; + *(vnx8df *) out = v; +} + +__attribute__ ((noipa)) void +f_vnx16df (double a, double b, double *out) +{ + vnx16df v = {a, a, a, b, b, b, b, b, b, b, b, b, b, b, b, b}; + *(vnx16df *) out = v; +} + +/* { dg-final { scan-assembler-times {vfmv\.v\.f\tv[0-9]+,\s*[a-x0-9]+} 2 } } */ +/* { dg-final { scan-assembler-times {vfslide1up\.vf\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 4 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c new file mode 100644 index 000000000000..4b7d7545d11d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef int64_t vnx8di __attribute__ ((vector_size (64))); +typedef int64_t vnx16di __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_vnx8di (int64_t a, int64_t b, int64_t *out) +{ + vnx8di v = {a, a, b, b, b, b, b, b}; + *(vnx8di *) out = v; +} + +__attribute__ ((noipa)) void +f_vnx16di (int64_t a, int64_t b, int64_t *out) +{ + vnx16di v = {a, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b}; + *(vnx16di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\tv[0-9]+,\s*[a-x0-9]+} 2 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c new file mode 100644 index 000000000000..6fefead0fc8e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef int64_t vnx8di __attribute__ ((vector_size (64))); + +__attribute__ ((noipa)) void +f_vnx8di (int64_t a, int64_t b, int64_t c, int64_t *out) +{ + vnx8di v = {a, b, c, c, c, c, c, c}; + *(vnx8di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\tv[0-9]+,\s*[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 2 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c new file mode 100644 index 000000000000..0e2aa3c36196 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef int64_t vnx16di __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_vnx16di (int64_t a, int64_t b, int64_t c, int64_t d, int64_t *out) +{ + vnx16di v = {a, b, c, d, d, d, d, d, d, d, d, d, d, d, d, d,}; + *(vnx16di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\tv[0-9]+,\s*[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c new file mode 100644 index 000000000000..467f4a609105 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c @@ -0,0 +1,47 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3" } */ + +#include "init-same-tail-2.c" + +int +main () +{ + double a = -1789089.23423; + double b = -8916156.45644; + + double v_vnx8df[sizeof (vnx8df) / sizeof (double)]; + f_vnx8df (a, b, v_vnx8df); + + for (int i = 0; i < sizeof (vnx8df) / sizeof (double); i++) + { + if (i == 0) + { + if (v_vnx8df[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx8df[i] != b) + __builtin_abort (); + } + } + + double v_vnx16df[sizeof (vnx16df) / sizeof (double)]; + f_vnx16df (a, b, v_vnx16df); + + for (int i = 0; i < sizeof (vnx16df) / sizeof (double); i++) + { + if (i < 3) + { + if (v_vnx16df[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx16df[i] != b) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c new file mode 100644 index 000000000000..26354dea50a3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c @@ -0,0 +1,48 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3" } */ + +#include "init-same-tail-3.c" + +int +main () +{ + int64_t a = -178908923423; + int64_t b = -891615645644; + int64_t v_vnx8di[sizeof (vnx8di) / sizeof (int64_t)]; + + f_vnx8di (a, b, v_vnx8di); + + for (int i = 0; i < sizeof (vnx8di) / sizeof (int64_t); i++) + { + if (i < 2) + { + if (v_vnx8di[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx8di[i] != b) + __builtin_abort (); + } + } + + int64_t v_vnx16di[sizeof (vnx16di) / sizeof (int64_t)]; + + f_vnx16di (a, b, v_vnx16di); + + for (int i = 0; i < sizeof (vnx16di) / sizeof (int64_t); i++) + { + if (i == 0) + { + if (v_vnx16di[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx16di[i] != b) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c new file mode 100644 index 000000000000..48e4e5621363 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c @@ -0,0 +1,42 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3" } */ + +#include "init-same-tail-5.c" + +int +main () +{ + int64_t a = -178908923423; + int64_t b = -891615645644; + int64_t c = 78908923423; + int64_t d = 81615645644; + int64_t v_vnx16di[sizeof (vnx16di) / sizeof (int64_t)]; + + f_vnx16di (a, b, c, d, v_vnx16di); + + for (int i = 0; i < sizeof (vnx16di) / sizeof (int64_t); i++) + { + if (i == 0) + { + if (v_vnx16di[i] != a) + __builtin_abort (); + } + else if (i == 1) + { + if (v_vnx16di[i] != b) + __builtin_abort (); + } + else if (i == 2) + { + if (v_vnx16di[i] != c) + __builtin_abort (); + } + else + { + if (v_vnx16di[i] != d) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c new file mode 100644 index 000000000000..09a9838f321e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c @@ -0,0 +1,653 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256qi, int8_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512qi, int8_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024qi, int8_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048qi, int8_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v4096qi, int8_t, 4096, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 11 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c new file mode 100644 index 000000000000..519d31007fc4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c @@ -0,0 +1,653 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256uqi, uint8_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512uqi, uint8_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024uqi, uint8_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048uqi, uint8_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v4096uqi, uint8_t, 4096, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 11 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c new file mode 100644 index 000000000000..185050fe8a2e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c @@ -0,0 +1,336 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256hi, int16_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512hi, int16_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024hi, int16_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048hi, int16_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 10 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c new file mode 100644 index 000000000000..8cac5d9de375 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c @@ -0,0 +1,336 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1) +DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256uhi, uint16_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512uhi, uint16_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024uhi, uint16_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT ( + v2048uhi, uint16_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 10 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c new file mode 100644 index 000000000000..a79a4329787e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c @@ -0,0 +1,177 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4si, int32_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8si, int32_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16si, int32_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32si, int32_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64si, int32_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128si, int32_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256si, int32_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512si, int32_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024si, int32_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 9 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c new file mode 100644 index 000000000000..2bea83d777cd --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c @@ -0,0 +1,177 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1) +DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256usi, uint32_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512usi, uint32_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024usi, uint32_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 9 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c new file mode 100644 index 000000000000..818fbbb129b0 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c @@ -0,0 +1,53 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v16di, int64_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32di, int64_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64di, int64_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128di, int64_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256di, int64_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 5 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c new file mode 100644 index 000000000000..78f438b42cb4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c @@ -0,0 +1,336 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var1, var1) +DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256hf, _Float16, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512hf, _Float16, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024hf, _Float16, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048hf, _Float16, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vfslide1up\.vf\s+v[0-9]+,\s*v[0-9]+,\s*[axf]+[0-9]+} 10 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c new file mode 100644 index 000000000000..dd3d933f556d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c @@ -0,0 +1,177 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4sf, float, 4, var0, var1, var1, var1) +DEF_REPEAT (v8sf, float, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16sf, float, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32sf, float, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64sf, float, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128sf, float, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256sf, float, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512sf, float, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024sf, float, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) + +/* { dg-final { scan-assembler-times {vfslide1up\.vf\s+v[0-9]+,\s*v[0-9]+,\s*[axf]+[0-9]+} 9 } } */