From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgeu1.qq.com (smtpbgeu1.qq.com [52.59.177.22]) by sourceware.org (Postfix) with ESMTPS id 054853858CD1 for ; Tue, 14 Nov 2023 11:38:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 054853858CD1 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 054853858CD1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=52.59.177.22 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699961907; cv=none; b=RGUu8B+L4jOylXdlUPCKtF+7h246rRNtJH5npRx9tLa3mhxhrMXW5HQ8Q9q8I5dapdGQhSo888HzMkAYF302a55xYsZGK+UybteCPvG90EeHP0Xe/88PEiKE4HWsP6pdC3hrCLi30DOTrG9/wSENMJ4aCz7t7X6me0LHWJsY2c4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699961907; c=relaxed/simple; bh=0u08CcM6TBCkr7keDaUxoam9q2SljQNcHtYYyPeXU6Q=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=JISGQEXP17RAH6ZeeLv3qdPAlTqViMR3woNzlgwUVPgCIcx7iLD6M4zZV2698G+qVP7VeEbDKFPuGk/BlRNixRYwqfmxCyLgMhdBWCSwK/GiWrh+iy8HiVOFH8+QZXr8BKrU2cDWQ75ZMC2CEaQO8oG5XpqfgcCfUTxfKvow14w= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp72t1699961886txs64on1 Received: from rios-cad122.hadoop.rioslab.org ( [58.60.1.26]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 14 Nov 2023 19:38:04 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: RrZlkntZBfkOWBMaCBwhUZsHZTFlSEik5Tkj43nMxsh0MaQDg41y2kUj8Wj3B fZwE8LfWdAHHXZPHphinQiuizKXgl2ptx1zQfn+kJrgorESudu9vz0vz1AMWT4uPip+rv03 UkNin/kOakA6HGGuQimd7R7Uped+BcRANXj7ACPqN9bVHU/ANTGQMFv2Q/6cYjsNkXRDNMl qKguHjQyqnunMzPK45NLgsve9M/CZCGqJ26eaoaitZMyiWdYWIdlxhhfmYx+n2wCHYIV0Ke Km3RTQqbV9yE9JHbfnGV11u8M5/iEqWU85b3+xMuX7xqu9ORviyLHsl0PKnEc2OVccsKy4x W67JeNClrTRywufnSK2Pcnsuwoj4JEnkcfI0Hlb4L6GFjyamMNXTgeH7Ar7tyhEQKvhXHu8 ybaaWoImK0Qi8Efo5xVXLQ== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 545580205389799334 From: Juzhe-Zhong To: gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, kito.cheng@sifive.com, jeffreyalaw@gmail.com, rdapp.gcc@gmail.com, Juzhe-Zhong Subject: [PATCH] RISC-V: Support trailing vec_init optimization Date: Tue, 14 Nov 2023 19:38:03 +0800 Message-Id: <20231114113803.4192929-1-juzhe.zhong@rivai.ai> X-Mailer: git-send-email 2.36.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,T_SPF_HELO_TEMPERROR autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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. --- 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 + .../rvv/autovec/vls-vlmax/trailing_run-1.c | 42 ++ .../rvv/autovec/vls-vlmax/trailing_run-2.c | 42 ++ .../gcc.target/riscv/rvv/autovec/vls/def.h | 8 + .../riscv/rvv/autovec/vls/trailing-1.c | 652 ++++++++++++++++++ .../riscv/rvv/autovec/vls/trailing-2.c | 335 +++++++++ .../riscv/rvv/autovec/vls/trailing-3.c | 176 +++++ .../riscv/rvv/autovec/vls/trailing-4.c | 96 +++ .../riscv/rvv/autovec/vls/trailing-5.c | 335 +++++++++ .../riscv/rvv/autovec/vls/trailing-6.c | 176 +++++ .../riscv/rvv/autovec/vls/trailing-7.c | 96 +++ 13 files changed, 2036 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-7.c diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index 6e9bb08aee7..030a6db8129 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -2238,6 +2238,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 @@ -2305,10 +2346,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 } } */ -- 2.36.3