From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7924) id C4F483858D32; Wed, 15 Nov 2023 10:00:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C4F483858D32 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1700042400; bh=6WPnOpPUWnXcSixq+HYOJ+nMCTbbn6tzgYb4F3vR1o8=; h=From:To:Subject:Date:From; b=j/yEISaCK46MDtBsuY5gjHaN3H7NXlJAci0uWwQECM+nMy7aW+q/Xuk7vMneAh17I ZGkRh96ULUh7D4qqN1tsI4+8TSOifLBKh0u3dxSoHCZgCVdyGPWcuMJAoZxoxoZ38S mDDxx5S059FTz1xAfMubKDd4Cb1kJ682Un7lmR98= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Pan Li To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-5482] RISC-V: Support trailing vec_init optimization X-Act-Checkin: gcc X-Git-Author: Juzhe-Zhong X-Git-Refname: refs/heads/master X-Git-Oldrev: da36a438d8e7f31c75f1085e3a525cb1b7d5f256 X-Git-Newrev: e9fc877f6d4b89940dbfb9f18549b82720d0d992 Message-Id: <20231115100000.C4F483858D32@sourceware.org> Date: Wed, 15 Nov 2023 10:00:00 +0000 (GMT) List-Id: https://gcc.gnu.org/g:e9fc877f6d4b89940dbfb9f18549b82720d0d992 commit r14-5482-ge9fc877f6d4b89940dbfb9f18549b82720d0d992 Author: Juzhe-Zhong Date: Tue Nov 14 19:38:03 2023 +0800 RISC-V: Support trailing vec_init optimization Add optimization when trailing elements > leading elements. Consider this following case: #include typedef int64_t v16di __attribute__ ((vector_size (128))); __attribute__ ((noipa)) void f_v16di (int64_t a, int64_t b, int64_t c, int64_t d, int64_t *out) { v16di v = {a, b, c, d, d, d, d, d, d, d, d, d, d, d, d, d}; *(v16di *) out = v; } https://godbolt.org/z/vWTjbrWGf Before this patch: f_v16di: vsetivli zero,16,e64,m8,ta,ma vmv.v.x v8,a0 vslide1down.vx v8,v8,a1 vslide1down.vx v8,v8,a2 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vslide1down.vx v8,v8,a3 vse64.v v8,0(a4) ret After this patch: f_v16di: vsetivli zero,16,e64,m8,ta,ma vmv.v.x v16,a3 vslide1up.vx v8,v16,a2 vslide1up.vx v16,v8,a1 vslide1up.vx v8,v16,a0 vse64.v v8,0(a4) ret gcc/ChangeLog: * config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem): New function. (expand_vec_init): Add trailing optimization. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/vls/def.h: Add trailing tests. * gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-2.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-2.c: New test. * gcc.target/riscv/rvv/autovec/vls/trailing-1.c: New test. * gcc.target/riscv/rvv/autovec/vls/trailing-2.c: New test. * gcc.target/riscv/rvv/autovec/vls/trailing-3.c: New test. * gcc.target/riscv/rvv/autovec/vls/trailing-4.c: New test. * gcc.target/riscv/rvv/autovec/vls/trailing-5.c: New test. * gcc.target/riscv/rvv/autovec/vls/trailing-6.c: New test. * gcc.target/riscv/rvv/autovec/vls/trailing-7.c: New test. Diff: --- gcc/config/riscv/riscv-v.cc | 52 +- .../riscv/rvv/autovec/vls-vlmax/trailing-1.c | 15 + .../riscv/rvv/autovec/vls-vlmax/trailing-2.c | 15 + .../riscv/rvv/autovec/vls-vlmax/trailing_run-1.c | 42 ++ .../riscv/rvv/autovec/vls-vlmax/trailing_run-2.c | 42 ++ .../gcc.target/riscv/rvv/autovec/vls/def.h | 8 + .../gcc.target/riscv/rvv/autovec/vls/trailing-1.c | 652 +++++++++++++++++++++ .../gcc.target/riscv/rvv/autovec/vls/trailing-2.c | 335 +++++++++++ .../gcc.target/riscv/rvv/autovec/vls/trailing-3.c | 176 ++++++ .../gcc.target/riscv/rvv/autovec/vls/trailing-4.c | 96 +++ .../gcc.target/riscv/rvv/autovec/vls/trailing-5.c | 335 +++++++++++ .../gcc.target/riscv/rvv/autovec/vls/trailing-6.c | 176 ++++++ .../gcc.target/riscv/rvv/autovec/vls/trailing-7.c | 96 +++ 13 files changed, 2036 insertions(+), 4 deletions(-) diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index ffb645eccf3..c718b504618 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -2268,6 +2268,47 @@ expand_vector_init_merge_combine_sequence (rtx target, emit_vlmax_insn (icode, MERGE_OP, merge_ops); } +/* 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 greater than leading_ndups, 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 leading_ndups = builder.count_dups (0, nelts_reqd - 1, 1); + int trailing_ndups = builder.count_dups (nelts_reqd - 1, -1, -1); + machine_mode mode = GET_MODE (target); + + if (trailing_ndups > leading_ndups) + { + rtx dup = expand_vector_broadcast (mode, builder.elt (nelts_reqd - 1)); + for (int i = nelts_reqd - trailing_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 tmp = gen_reg_rtx (mode); + rtx ops[] = {tmp, dup, builder.elt (i)}; + emit_vlmax_insn (icode, BINARY_OP, ops); + /* slide1up need source and dest to be different REG. */ + dup = tmp; + } + + emit_move_insn (target, dup); + return true; + } + + return false; +} + /* Initialize register TARGET from the elements in PARALLEL rtx VALS. */ void @@ -2335,10 +2376,13 @@ expand_vec_init (rtx target, rtx vals) } } - /* Handle common situation by vslide1down. This function can handle any - situation of vec_init. Only the cases that are not optimized above - will fall through here. */ - expand_vector_init_insert_elems (target, v, nelts); + /* Optimize trailing same elements sequence: + v = {y, y2, y3, y4, y5, x, x, x, x, x, x, x, x, x, x, x}; */ + if (!expand_vector_init_trailing_same_elem (target, v, nelts)) + /* Handle common situation by vslide1down. This function can handle any + situation of vec_init. Only the cases that are not optimized above + will fall through here. */ + expand_vector_init_insert_elems (target, v, nelts); } /* Get insn code for corresponding comparison. */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c new file mode 100644 index 00000000000..b48252a5dc5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d --param=riscv-autovec-lmul=m8 --param=riscv-autovec-preference=fixed-vlmax" } */ + +#include + +typedef int64_t v16di __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_v16di (int64_t a, int64_t b, int64_t c, int64_t d, int64_t *out) +{ + v16di v = {a, b, c, d, d, d, d, d, d, d, d, d, d, d, d, d}; + *(v16di *) out = v; +} + +/* { 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/trailing-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-2.c new file mode 100644 index 00000000000..46d2777d757 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-2.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d --param=riscv-autovec-lmul=m8 --param=riscv-autovec-preference=fixed-vlmax" } */ + +#include + +typedef double v16df __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_v16df (double a, double b, double c, double d, double *out) +{ + v16df v = {a, b, c, d, d, d, d, d, d, d, d, d, d, d, d, d}; + *(v16df *) out = v; +} + +/* { dg-final { scan-assembler-times {vfslide1up\.vf\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c new file mode 100644 index 00000000000..469c30d42d1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c @@ -0,0 +1,42 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "trailing-1.c" + +int +main () +{ + int64_t a = -1789089; + int64_t b = 8916156; + int64_t c = -7789; + int64_t d = 9156; + + int64_t v_v16di[sizeof (v16di) / sizeof (int64_t)]; + f_v16di (a, b, c, d, v_v16di); + + for (int i = 0; i < sizeof (v16di) / sizeof (int64_t); i++) + { + if (i == 0) + { + if (v_v16di[i] != a) + __builtin_abort (); + } + else if (i == 1) + { + if (v_v16di[i] != b) + __builtin_abort (); + } + else if (i == 2) + { + if (v_v16di[i] != c) + __builtin_abort (); + } + else + { + if (v_v16di[i] != d) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-2.c new file mode 100644 index 00000000000..cbb0b152459 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-2.c @@ -0,0 +1,42 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "trailing-2.c" + +int +main () +{ + double a = -1789089.4324; + double b = 8916156.82343; + double c = -7789.3423; + double d = 9156.955; + + double v_v16df[sizeof (v16df) / sizeof (double)]; + f_v16df (a, b, c, d, v_v16df); + + for (int i = 0; i < sizeof (v16df) / sizeof (double); i++) + { + if (i == 0) + { + if (v_v16df[i] != a) + __builtin_abort (); + } + else if (i == 1) + { + if (v_v16df[i] != b) + __builtin_abort (); + } + else if (i == 2) + { + if (v_v16df[i] != c) + __builtin_abort (); + } + else + { + if (v_v16df[i] != d) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h index 9cc3656e710..cb7a1c97ded 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h @@ -852,3 +852,11 @@ typedef double v512df __attribute__ ((vector_size (4096))); v##NUM##TYPE1 v = {__VA_ARGS__}; \ *(v##NUM##TYPE1 *) out = v; \ } + +#define DEF_TRAILING(TYPE1, TYPE2, NUM, ...) \ + void init_##TYPE1##_##TYPE2##_##NUM (TYPE2 var0, TYPE2 var1, TYPE2 var2, \ + TYPE2 var3, TYPE2 *__restrict out) \ + { \ + TYPE1 v = {__VA_ARGS__}; \ + *(TYPE1 *) out = v; \ + } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-1.c new file mode 100644 index 00000000000..ed15a12ecfb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-1.c @@ -0,0 +1,652 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_TRAILING (v8qi, int8_t, 8, var0, var1, var2, var3, var3, var3, var3, var3) +DEF_TRAILING (v16qi, int8_t, 16, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING (v32qi, int8_t, 32, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3) +DEF_TRAILING (v64qi, int8_t, 64, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING (v128qi, int8_t, 128, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v256qi, int8_t, 256, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v512qi, int8_t, 512, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v1024qi, int8_t, 1024, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING ( + v2048qi, int8_t, 2048, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v4096qi, int8_t, 4096, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3) + +/* { dg-final { scan-assembler-times {vslide1up\.vx} 30 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-2.c new file mode 100644 index 00000000000..5deb097bf54 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-2.c @@ -0,0 +1,335 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_TRAILING (v8hi, int16_t, 8, var0, var1, var2, var3, var3, var3, var3, var3) +DEF_TRAILING (v16hi, int16_t, 16, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING (v32hi, int16_t, 32, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3) +DEF_TRAILING (v64hi, int16_t, 64, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING (v128hi, int16_t, 128, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v256hi, int16_t, 256, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v512hi, int16_t, 512, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v1024hi, int16_t, 1024, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING ( + v2048hi, int16_t, 2048, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) + +/* { dg-final { scan-assembler-times {vslide1up\.vx} 27 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-3.c new file mode 100644 index 00000000000..e503d6c4dff --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-3.c @@ -0,0 +1,176 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_TRAILING (v8si, int32_t, 8, var0, var1, var2, var3, var3, var3, var3, var3) +DEF_TRAILING (v16si, int32_t, 16, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING (v32si, int32_t, 32, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3) +DEF_TRAILING (v64si, int32_t, 64, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING (v128si, int32_t, 128, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v256si, int32_t, 256, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v512si, int32_t, 512, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v1024si, int32_t, 1024, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) + +/* { dg-final { scan-assembler-times {vslide1up\.vx} 24 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-4.c new file mode 100644 index 00000000000..c7945643d57 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-4.c @@ -0,0 +1,96 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_TRAILING (v8di, int64_t, 8, var0, var1, var2, var3, var3, var3, var3, var3) +DEF_TRAILING (v16di, int64_t, 16, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING (v32di, int64_t, 32, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3) +DEF_TRAILING (v64di, int64_t, 64, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING (v128di, int64_t, 128, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v256di, int64_t, 256, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v512di, int64_t, 512, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3) + + +/* { dg-final { scan-assembler-times {vslide1up\.vx} 21 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-5.c new file mode 100644 index 00000000000..43e17922950 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-5.c @@ -0,0 +1,335 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_TRAILING (v8hf, _Float16, 8, var0, var1, var2, var3, var3, var3, var3, var3) +DEF_TRAILING (v16hf, _Float16, 16, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING (v32hf, _Float16, 32, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3) +DEF_TRAILING (v64hf, _Float16, 64, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING (v128hf, _Float16, 128, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v256hf, _Float16, 256, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v512hf, _Float16, 512, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v1024hf, _Float16, 1024, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING ( + v2048hf, _Float16, 2048, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) + +/* { dg-final { scan-assembler-times {vfslide1up\.vf} 27 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-6.c new file mode 100644 index 00000000000..bb91c6a1855 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-6.c @@ -0,0 +1,176 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_TRAILING (v8sf, float, 8, var0, var1, var2, var3, var3, var3, var3, var3) +DEF_TRAILING (v16sf, float, 16, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING (v32sf, float, 32, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3) +DEF_TRAILING (v64sf, float, 64, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING (v128sf, float, 128, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v256sf, float, 256, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v512sf, float, 512, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v1024sf, float, 1024, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) + +/* { dg-final { scan-assembler-times {vfslide1up\.vf} 24 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-7.c new file mode 100644 index 00000000000..b12f08d280e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-7.c @@ -0,0 +1,96 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_TRAILING (v8df, double, 8, var0, var1, var2, var3, var3, var3, var3, var3) +DEF_TRAILING (v16df, double, 16, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING (v32df, double, 32, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3) +DEF_TRAILING (v64df, double, 64, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3) +DEF_TRAILING (v128df, double, 128, var0, var1, var2, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v256df, double, 256, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3) +DEF_TRAILING ( + v512df, double, 512, var0, var1, var2, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, var3, + var3, var3, var3, var3, var3, var3, var3, var3, var3) + + +/* { dg-final { scan-assembler-times {vfslide1up\.vf} 21 } } */