From patchwork Fri Sep 15 03:53:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "juzhe.zhong@rivai.ai" X-Patchwork-Id: 140125 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp787803vqi; Thu, 14 Sep 2023 20:57:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHA6MvZ1O7bk5dufAj+TJbKXbke7LAV0w551xbrrM7WaEv+jdCAOIvMWFxAT6YUg1agtJJ9 X-Received: by 2002:a17:907:1dd5:b0:9a1:bd82:de24 with SMTP id og21-20020a1709071dd500b009a1bd82de24mr334852ejc.12.1694750255468; Thu, 14 Sep 2023 20:57:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694750255; cv=none; d=google.com; s=arc-20160816; b=PBjZHEUnsoctB/FWpI//J+NXnnAn4GV7I5ksUgu7mA0thABcaRBrCtfWXLLuVC5z5t nXjmgaDHqrDFMrvlnGN9zYxa/bP7cvp+36yOyE7sJ3tEyCmMFmU056yKWrRC8tkb0TX4 85XmKDxK12U9vzLsSdNGsAfqoV6fv97R8ZpwlJejKljvipUqolhqxbdOhRzgMpQfFTUG B4epxWx1dSilv89d1Q3lnrOQ8z2LrHMP1C+D0CTxg03v89wgB8D6TATqE5dYynQiYjno NzOXqcnXRrecwZGR+sp2vA38Zqf8tMUJ1NjFpDBnVWAXnHNew+FEObYd/uMholO11m8r zBYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:feedback-id :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dmarc-filter:delivered-to; bh=ACpyzkBwChOQZDXRKzzs+PbiQpmlkZzF1vxDwAebSPc=; fh=12MRPJmZ1mgDpHqWoogMKqnaGRGM2b7lcuJroqfjJiw=; b=AC0rswYYu7cFZFoyb9sHG5FX+Ck4pp7+qqUdIKW6I1GHnRlk+8ozZRdW5lj7roO3FS UQhp8TFwMYHTmel3Lz94Dfcgh8gQ01EB1QpGSn5waHcA4yGxKh7xbsK4H0grdemWoFN4 GYGE9pNMZnTmcoHRbHVIs1RTR/qnajfnQVl0i8wyyrpAoIj5J4+vqXk6GepJt8iKDKj1 FJD758zsLcLhA63GG7odHGaw88LG8dlbP31oYewmNyfxl0OwpEM9XQDIzir44gLr+zwa RBdJFwWKGtEcATux0rMJnG3lonZp14RuDQQNeR1zaXi5g/w6z2MmPI1EMuviHgVJuFIt lWbg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id v4-20020a17090690c400b0098653c15e94si2388517ejw.117.2023.09.14.20.57.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Sep 2023 20:57:35 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 315B1384025C for ; Fri, 15 Sep 2023 03:54:02 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbgau2.qq.com (smtpbgau2.qq.com [54.206.34.216]) by sourceware.org (Postfix) with ESMTPS id 09DB23858416 for ; Fri, 15 Sep 2023 03:53:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 09DB23858416 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp86t1694749991t51dwijp Received: from rios-cad122.hadoop.rioslab.org ( [58.60.1.26]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 15 Sep 2023 11:53:10 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: +ynUkgUhZJnZnv6+465D2bUD97VZR+6NJX3Z9SGobp135JcqDa/WhI+AnzwZ5 O7R1Txqyou5V2cA7ZCJY9zq+u5mSs1qxNEqjJCjpQIxMKquU9sfJ2obFjIbgWgdBG3lsmi2 sfmaUO+Q0sT5vGmoKiJM772iCBFUx1R9EzU1hAt+NAGHMvJvOJvRq9zDFDC4a414WPaBoAk e03OtY7xG5wQbJItMJeGrOFf6GV2Y7eNv1RNcQckhtrp6ly58WGc/GqUDa7tEFz0KTjjLXV nChi3rGj2pwZI17Ml4e5PpY7TQdORXMtU74QTPr/R/nfnBFvuQmCg7lPqgGAd7abOFGS12d GSP0Wzpma4ehxXQyx3Y9LO3AIsguVQmtMI5ANMN8BdOxc5vksQUbZRDmJW8EKZBKrtUlYr/ K2ky/3aTB04= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 15312583139874486334 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 VLS modes vec_init auto-vectorization Date: Fri, 15 Sep 2023 11:53:08 +0800 Message-Id: <20230915035309.579545-1-juzhe.zhong@rivai.ai> X-Mailer: git-send-email 2.36.3 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_ASCII_DIVIDERS, 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_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777074443806549170 X-GMAIL-MSGID: 1777074443806549170 There are multiple SLP dump FAILs in vect testsuite. After analysis, confirm we are missing vec_init for VLS modes. This patch is not sufficient to fix those FAILs (We need more VLS patterns will send them soon). This patch is the prerequsite patch for fixing those SLP FAILs. Finish the whole regression. Ok for trunk ? gcc/ChangeLog: * config/riscv/autovec.md: Extend VLS modes. * config/riscv/vector.md: Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/vls/def.h: Add VLS vec_init tests. * gcc.target/riscv/rvv/autovec/vls/init-1.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-2.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-3.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-4.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-5.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-6.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-7.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-1.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-2.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-3.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-4.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-5.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-6.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-7.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-8.c: New test. * gcc.target/riscv/rvv/autovec/vls/repeat-9.c: New test. --- gcc/config/riscv/autovec.md | 2 +- gcc/config/riscv/vector.md | 68 +- .../gcc.target/riscv/rvv/autovec/vls/def.h | 143 ++++ .../gcc.target/riscv/rvv/autovec/vls/init-1.c | 46 ++ .../gcc.target/riscv/rvv/autovec/vls/init-2.c | 48 ++ .../gcc.target/riscv/rvv/autovec/vls/init-3.c | 27 + .../gcc.target/riscv/rvv/autovec/vls/init-4.c | 48 ++ .../gcc.target/riscv/rvv/autovec/vls/init-5.c | 26 + .../gcc.target/riscv/rvv/autovec/vls/init-6.c | 48 ++ .../gcc.target/riscv/rvv/autovec/vls/init-7.c | 26 + .../riscv/rvv/autovec/vls/repeat-1.c | 654 ++++++++++++++++++ .../riscv/rvv/autovec/vls/repeat-2.c | 654 ++++++++++++++++++ .../riscv/rvv/autovec/vls/repeat-3.c | 337 +++++++++ .../riscv/rvv/autovec/vls/repeat-4.c | 337 +++++++++ .../riscv/rvv/autovec/vls/repeat-5.c | 178 +++++ .../riscv/rvv/autovec/vls/repeat-6.c | 178 +++++ .../riscv/rvv/autovec/vls/repeat-7.c | 53 ++ .../riscv/rvv/autovec/vls/repeat-8.c | 337 +++++++++ .../riscv/rvv/autovec/vls/repeat-9.c | 178 +++++ 19 files changed, 3353 insertions(+), 35 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c diff --git a/gcc/config/riscv/autovec.md b/gcc/config/riscv/autovec.md index 0a60f45301b..1e0dae0d7f5 100644 --- a/gcc/config/riscv/autovec.md +++ b/gcc/config/riscv/autovec.md @@ -373,7 +373,7 @@ ;; ------------------------------------------------------------------------- (define_expand "vec_init" - [(match_operand:V 0 "register_operand") + [(match_operand:V_VLS 0 "register_operand") (match_operand 1 "")] "TARGET_VECTOR" { diff --git a/gcc/config/riscv/vector.md b/gcc/config/riscv/vector.md index fb0c8abd995..d3df983c580 100644 --- a/gcc/config/riscv/vector.md +++ b/gcc/config/riscv/vector.md @@ -1607,40 +1607,40 @@ (set_attr "mode" "")]) (define_insn "@pred_merge_scalar" - [(set (match_operand:VI_QHS 0 "register_operand" "=vd,vd") - (if_then_else:VI_QHS + [(set (match_operand:V_VLSI_QHS 0 "register_operand" "=vd,vd") + (if_then_else:V_VLSI_QHS (unspec: [(match_operand 5 "vector_length_operand" " rK,rK") (match_operand 6 "const_int_operand" " i, i") (match_operand 7 "const_int_operand" " i, i") (reg:SI VL_REGNUM) (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE) - (vec_merge:VI_QHS - (vec_duplicate:VI_QHS + (vec_merge:V_VLSI_QHS + (vec_duplicate:V_VLSI_QHS (match_operand: 3 "register_operand" " r, r")) - (match_operand:VI_QHS 2 "register_operand" " vr,vr") + (match_operand:V_VLSI_QHS 2 "register_operand" " vr,vr") (match_operand: 4 "register_operand" " vm,vm")) - (match_operand:VI_QHS 1 "vector_merge_operand" " vu, 0")))] + (match_operand:V_VLSI_QHS 1 "vector_merge_operand" " vu, 0")))] "TARGET_VECTOR" "vmerge.vxm\t%0,%2,%3,%4" [(set_attr "type" "vimerge") (set_attr "mode" "")]) (define_expand "@pred_merge_scalar" - [(set (match_operand:VI_D 0 "register_operand") - (if_then_else:VI_D + [(set (match_operand:V_VLSI_D 0 "register_operand") + (if_then_else:V_VLSI_D (unspec: [(match_operand 5 "vector_length_operand") (match_operand 6 "const_int_operand") (match_operand 7 "const_int_operand") (reg:SI VL_REGNUM) (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE) - (vec_merge:VI_D - (vec_duplicate:VI_D + (vec_merge:V_VLSI_D + (vec_duplicate:V_VLSI_D (match_operand: 3 "reg_or_int_operand")) - (match_operand:VI_D 2 "register_operand") + (match_operand:V_VLSI_D 2 "register_operand") (match_operand: 4 "register_operand")) - (match_operand:VI_D 1 "vector_merge_operand")))] + (match_operand:V_VLSI_D 1 "vector_merge_operand")))] "TARGET_VECTOR" { if (riscv_vector::sew64_scalar_helper ( @@ -1658,41 +1658,41 @@ }) (define_insn "*pred_merge_scalar" - [(set (match_operand:VI_D 0 "register_operand" "=vd,vd") - (if_then_else:VI_D + [(set (match_operand:V_VLSI_D 0 "register_operand" "=vd,vd") + (if_then_else:V_VLSI_D (unspec: [(match_operand 5 "vector_length_operand" " rK,rK") (match_operand 6 "const_int_operand" " i, i") (match_operand 7 "const_int_operand" " i, i") (reg:SI VL_REGNUM) (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE) - (vec_merge:VI_D - (vec_duplicate:VI_D + (vec_merge:V_VLSI_D + (vec_duplicate:V_VLSI_D (match_operand: 3 "register_operand" " r, r")) - (match_operand:VI_D 2 "register_operand" " vr,vr") + (match_operand:V_VLSI_D 2 "register_operand" " vr,vr") (match_operand: 4 "register_operand" " vm,vm")) - (match_operand:VI_D 1 "vector_merge_operand" " vu, 0")))] + (match_operand:V_VLSI_D 1 "vector_merge_operand" " vu, 0")))] "TARGET_VECTOR" "vmerge.vxm\t%0,%2,%3,%4" [(set_attr "type" "vimerge") (set_attr "mode" "")]) (define_insn "*pred_merge_extended_scalar" - [(set (match_operand:VI_D 0 "register_operand" "=vd,vd") - (if_then_else:VI_D + [(set (match_operand:V_VLSI_D 0 "register_operand" "=vd,vd") + (if_then_else:V_VLSI_D (unspec: [(match_operand 5 "vector_length_operand" " rK,rK") (match_operand 6 "const_int_operand" " i, i") (match_operand 7 "const_int_operand" " i, i") (reg:SI VL_REGNUM) (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE) - (vec_merge:VI_D - (vec_duplicate:VI_D + (vec_merge:V_VLSI_D + (vec_duplicate:V_VLSI_D (sign_extend: (match_operand: 3 "register_operand" " r, r"))) - (match_operand:VI_D 2 "register_operand" " vr,vr") + (match_operand:V_VLSI_D 2 "register_operand" " vr,vr") (match_operand: 4 "register_operand" " vm,vm")) - (match_operand:VI_D 1 "vector_merge_operand" " vu, 0")))] + (match_operand:V_VLSI_D 1 "vector_merge_operand" " vu, 0")))] "TARGET_VECTOR" "vmerge.vxm\t%0,%2,%3,%4" [(set_attr "type" "vimerge") @@ -7422,20 +7422,20 @@ ;; ------------------------------------------------------------------------------- (define_insn "@pred_merge_scalar" - [(set (match_operand:VF 0 "register_operand" "=vd,vd") - (if_then_else:VF + [(set (match_operand:V_VLSF 0 "register_operand" "=vd,vd") + (if_then_else:V_VLSF (unspec: [(match_operand 5 "vector_length_operand" " rK,rK") (match_operand 6 "const_int_operand" " i, i") (match_operand 7 "const_int_operand" " i, i") (reg:SI VL_REGNUM) (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE) - (vec_merge:VF - (vec_duplicate:VF + (vec_merge:V_VLSF + (vec_duplicate:V_VLSF (match_operand: 3 "register_operand" " f, f")) - (match_operand:VF 2 "register_operand" " vr,vr") + (match_operand:V_VLSF 2 "register_operand" " vr,vr") (match_operand: 4 "register_operand" " vm,vm")) - (match_operand:VF 1 "vector_merge_operand" " vu, 0")))] + (match_operand:V_VLSF 1 "vector_merge_operand" " vu, 0")))] "TARGET_VECTOR" "vfmerge.vfm\t%0,%2,%3,%4" [(set_attr "type" "vfmerge") @@ -8044,8 +8044,8 @@ ;; vfslide1 instructions (define_insn "@pred_slide" - [(set (match_operand:VF 0 "register_operand" "") - (unspec:VF + [(set (match_operand:V_VLSF 0 "register_operand" "") + (unspec:V_VLSF [(unspec: [(match_operand: 1 "vector_mask_operand" " vm, vm,Wc1,Wc1") (match_operand 5 "vector_length_operand" " rK, rK, rK, rK") @@ -8054,8 +8054,8 @@ (match_operand 8 "const_int_operand" " i, i, i, i") (reg:SI VL_REGNUM) (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE) - (match_operand:VF 2 "vector_merge_operand" " vu, 0, vu, 0") - (match_operand:VF 3 "register_operand" " vr, vr, vr, vr") + (match_operand:V_VLSF 2 "vector_merge_operand" " vu, 0, vu, 0") + (match_operand:V_VLSF 3 "register_operand" " vr, vr, vr, vr") (match_operand: 4 "register_operand" " f, f, f, f")] VFSLIDES1))] "TARGET_VECTOR" "vfslide.vf\t%0,%3,%4%p1" 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 1edc1910920..a0fe2f6f2f5 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h @@ -258,3 +258,146 @@ typedef double v512df __attribute__ ((vector_size (4096))); for (int i = 0; i < NUM; ++i) \ a[i] = (b[i] > c[i]) OP (d[i] < e[i]); \ } + +#define VARS2(TYPE, NUM1, NUM2) TYPE var##NUM1, TYPE var##NUM2 +#define VARS4(TYPE, NUM1, NUM2, NUM3, NUM4) \ + VARS2 (TYPE, NUM1, NUM2), VARS2 (TYPE, NUM3, NUM4) +#define VARS8(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8) \ + VARS4 (TYPE, NUM1, NUM2, NUM3, NUM4), VARS4 (TYPE, NUM5, NUM6, NUM7, NUM8) +#define VARS16(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \ + NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16) \ + VARS8 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8), \ + VARS8 (TYPE, NUM9, NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16) +#define VARS32(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \ + NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, \ + NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, \ + NUM28, NUM29, NUM30, NUM31, NUM32) \ + VARS16 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \ + NUM11, NUM12, NUM13, NUM14, NUM15, NUM16), \ + VARS16 (TYPE, NUM17, NUM18, NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, \ + NUM25, NUM26, NUM27, NUM28, NUM29, NUM30, NUM31, NUM32) +#define VARS64(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \ + NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, \ + NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, \ + NUM28, NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, \ + NUM37, NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, \ + NUM46, NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, \ + NUM55, NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, \ + NUM64) \ + VARS32 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \ + NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \ + NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \ + NUM29, NUM30, NUM31, NUM32), \ + VARS32 (TYPE, NUM33, NUM34, NUM35, NUM36, NUM37, NUM38, NUM39, NUM40, \ + NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, NUM47, NUM48, NUM49, \ + NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, NUM56, NUM57, NUM58, \ + NUM59, NUM60, NUM61, NUM62, NUM63, NUM64) +#define VARS128(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \ + NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, \ + NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, \ + NUM28, NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, \ + NUM37, NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, \ + NUM46, NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, \ + NUM55, NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, \ + NUM64, NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, \ + NUM73, NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, \ + NUM82, NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, \ + NUM91, NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, \ + NUM100, NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, \ + NUM107, NUM108, NUM109, NUM110, NUM111, NUM112, NUM113, \ + NUM114, NUM115, NUM116, NUM117, NUM118, NUM119, NUM120, \ + NUM121, NUM122, NUM123, NUM124, NUM125, NUM126, NUM127, \ + NUM128) \ + VARS64 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \ + NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \ + NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \ + NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, \ + NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, \ + NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, \ + NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64), \ + VARS64 (TYPE, NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, \ + NUM73, NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, \ + NUM82, NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, \ + NUM91, NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, \ + NUM100, NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, NUM107, \ + NUM108, NUM109, NUM110, NUM111, NUM112, NUM113, NUM114, NUM115, \ + NUM116, NUM117, NUM118, NUM119, NUM120, NUM121, NUM122, NUM123, \ + NUM124, NUM125, NUM126, NUM127, NUM128) + +#define INIT2(NUM1, NUM2) var##NUM1, var##NUM2 +#define INIT4(NUM1, NUM2, NUM3, NUM4) INIT2 (NUM1, NUM2), INIT2 (NUM3, NUM4) +#define INIT8(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8) \ + INIT4 (NUM1, NUM2, NUM3, NUM4), INIT4 (NUM5, NUM6, NUM7, NUM8) +#define INIT16(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \ + NUM11, NUM12, NUM13, NUM14, NUM15, NUM16) \ + INIT4 (NUM1, NUM2, NUM3, NUM4), INIT4 (NUM5, NUM6, NUM7, NUM8) +#define INIT32(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \ + NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \ + NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \ + NUM29, NUM30, NUM31, NUM32) \ + INIT16 (NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, NUM11, \ + NUM12, NUM13, NUM14, NUM15, NUM16), \ + INIT16 (NUM17, NUM18, NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, \ + NUM26, NUM27, NUM28, NUM29, NUM30, NUM31, NUM32) +#define INIT64(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \ + NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \ + NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \ + NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, \ + NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, \ + NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, \ + NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64) \ + INIT32 (NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, NUM11, \ + NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, NUM20, \ + NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, NUM29, \ + NUM30, NUM31, NUM32), \ + INIT32 (NUM33, NUM34, NUM35, NUM36, NUM37, NUM38, NUM39, NUM40, NUM41, \ + NUM42, NUM43, NUM44, NUM45, NUM46, NUM47, NUM48, NUM49, NUM50, \ + NUM51, NUM52, NUM53, NUM54, NUM55, NUM56, NUM57, NUM58, NUM59, \ + NUM60, NUM61, NUM62, NUM63, NUM64) +#define INIT128(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \ + NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \ + NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \ + NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, \ + NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, \ + NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, \ + NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64, \ + NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, NUM73, \ + NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, NUM82, \ + NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, NUM91, \ + NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, \ + NUM100, NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, \ + NUM107, NUM108, NUM109, NUM110, NUM111, NUM112, NUM113, \ + NUM114, NUM115, NUM116, NUM117, NUM118, NUM119, NUM120, \ + NUM121, NUM122, NUM123, NUM124, NUM125, NUM126, NUM127, \ + NUM128) \ + INIT64 (NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, NUM11, \ + NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, NUM20, \ + NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, NUM29, \ + NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, NUM38, \ + NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, NUM47, \ + NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, NUM56, \ + NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64), \ + INIT64 (NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, NUM73, \ + NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, NUM82, \ + NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, NUM91, \ + NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, NUM100, \ + NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, NUM107, NUM108, \ + NUM109, NUM110, NUM111, NUM112, NUM113, NUM114, NUM115, NUM116, \ + NUM117, NUM118, NUM119, NUM120, NUM121, NUM122, NUM123, NUM124, \ + NUM125, NUM126, NUM127, NUM128) + +#define DEF_INIT(TYPE1, TYPE2, NUM, ...) \ + void init_##TYPE1##_##TYPE2##_##NUM (VARS##NUM (TYPE2, __VA_ARGS__), \ + TYPE2 *__restrict out) \ + { \ + TYPE1 v = {INIT##NUM (__VA_ARGS__)}; \ + *(TYPE1 *) out = v; \ + } + +#define DEF_REPEAT(TYPE1, TYPE2, NUM, ...) \ + void init_##TYPE1##_##TYPE2##_##NUM (TYPE2 var0, TYPE2 var1, \ + TYPE2 *__restrict out) \ + { \ + TYPE1 v = {__VA_ARGS__}; \ + *(TYPE1 *) out = v; \ + } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c new file mode 100644 index 00000000000..aec2c6e5e5f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c @@ -0,0 +1,46 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_INIT (v2qi, int8_t, 2, 0, 1) +DEF_INIT (v4qi, int8_t, 4, 0, 1, 2, 3) +DEF_INIT (v8qi, int8_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16qi, int8_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32qi, int8_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64qi, int8_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128qi, int8_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127) +DEF_INIT (v2uqi, uint8_t, 2, 0, 1) +DEF_INIT (v4uqi, uint8_t, 4, 0, 1, 2, 3) +DEF_INIT (v8uqi, uint8_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16uqi, uint8_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32uqi, uint8_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64uqi, uint8_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128uqi, uint8_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) + +/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c new file mode 100644 index 00000000000..f9c58aef553 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c @@ -0,0 +1,48 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl256b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_INIT (v2hi, int16_t, 2, 0, 1) +DEF_INIT (v4hi, int16_t, 4, 0, 1, 2, 3) +DEF_INIT (v8hi, int16_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16hi, int16_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32hi, int16_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64hi, int16_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128hi, int16_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) +DEF_INIT (v2uhi, uint16_t, 2, 0, 1) +DEF_INIT (v4uhi, uint16_t, 4, 0, 1, 2, 3) +DEF_INIT (v8uhi, uint16_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16uhi, uint16_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15) +DEF_INIT (v32uhi, uint16_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31) +DEF_INIT (v64uhi, uint16_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128uhi, uint16_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) + +/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c new file mode 100644 index 00000000000..eb970c7b042 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl256b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_INIT (v2hf, _Float16, 2, 0, 1) +DEF_INIT (v4hf, _Float16, 4, 0, 1, 2, 3) +DEF_INIT (v8hf, _Float16, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16hf, _Float16, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32hf, _Float16, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64hf, _Float16, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128hf, _Float16, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) + +/* { dg-final { scan-assembler-times {vfslide1down\.vf} 247 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c new file mode 100644 index 00000000000..fedeb445a2b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c @@ -0,0 +1,48 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl512b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_INIT (v2si, int32_t, 2, 0, 1) +DEF_INIT (v4si, int32_t, 4, 0, 1, 2, 3) +DEF_INIT (v8si, int32_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16si, int32_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32si, int32_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64si, int32_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128si, int32_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) +DEF_INIT (v2usi, uint32_t, 2, 0, 1) +DEF_INIT (v4usi, uint32_t, 4, 0, 1, 2, 3) +DEF_INIT (v8usi, uint32_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16usi, uint32_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15) +DEF_INIT (v32usi, uint32_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31) +DEF_INIT (v64usi, uint32_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128usi, uint32_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) + +/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c new file mode 100644 index 00000000000..c93ac524c88 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c @@ -0,0 +1,26 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl512b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_INIT (v2sf, float, 2, 0, 1) +DEF_INIT (v4sf, float, 4, 0, 1, 2, 3) +DEF_INIT (v8sf, float, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16sf, float, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32sf, float, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64sf, float, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128sf, float, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127) + +/* { dg-final { scan-assembler-times {vfslide1down\.vf} 247 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c new file mode 100644 index 00000000000..304539f4868 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c @@ -0,0 +1,48 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl1024b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_INIT (v2di, int64_t, 2, 0, 1) +DEF_INIT (v4di, int64_t, 4, 0, 1, 2, 3) +DEF_INIT (v8di, int64_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16di, int64_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32di, int64_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64di, int64_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128di, int64_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) +DEF_INIT (v2udi, uint64_t, 2, 0, 1) +DEF_INIT (v4udi, uint64_t, 4, 0, 1, 2, 3) +DEF_INIT (v8udi, uint64_t, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16udi, uint64_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15) +DEF_INIT (v32udi, uint64_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31) +DEF_INIT (v64udi, uint64_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128udi, uint64_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127) + +/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c new file mode 100644 index 00000000000..4b966010dca --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c @@ -0,0 +1,26 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl1024b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_INIT (v2df, double, 2, 0, 1) +DEF_INIT (v4df, double, 4, 0, 1, 2, 3) +DEF_INIT (v8df, double, 8, 0, 1, 2, 3, 4, 5, 6, 7) +DEF_INIT (v16df, double, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15) +DEF_INIT (v32df, double, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) +DEF_INIT (v64df, double, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +DEF_INIT (v128df, double, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127) + +/* { dg-final { scan-assembler-times {vfslide1down\.vf} 247 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c new file mode 100644 index 00000000000..2c831f9f228 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c @@ -0,0 +1,654 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var0, var1) +DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256qi, int8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512qi, int8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024qi, int8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT ( + v2048qi, int8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v4096qi, int8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */ +/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c new file mode 100644 index 00000000000..a465bb6ea64 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c @@ -0,0 +1,654 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var0, var1) +DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256uqi, uint8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512uqi, uint8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024uqi, uint8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT ( + v2048uqi, uint8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v4096uqi, uint8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */ +/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c new file mode 100644 index 00000000000..9c9899b31dd --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c @@ -0,0 +1,337 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var0, var1) +DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256hi, int16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512hi, int16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024hi, int16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT ( + v2048hi, int16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */ +/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c new file mode 100644 index 00000000000..17bc31367d6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c @@ -0,0 +1,337 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var0, var1) +DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1) +DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256uhi, uint16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512uhi, uint16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024uhi, uint16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT ( + v2048uhi, uint16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */ +/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c new file mode 100644 index 00000000000..6398f2476ad --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c @@ -0,0 +1,178 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4si, int32_t, 4, var0, var1, var0, var1) +DEF_REPEAT (v8si, int32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16si, int32_t, 16, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32si, int32_t, 32, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v64si, int32_t, 64, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT (v128si, int32_t, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256si, int32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512si, int32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024si, int32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */ +/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c new file mode 100644 index 00000000000..960a164112f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c @@ -0,0 +1,178 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var0, var1) +DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1) +DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256usi, uint32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512usi, uint32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024usi, uint32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */ +/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c new file mode 100644 index 00000000000..98be878daed --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c @@ -0,0 +1,53 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v16di, int64_t, 16, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32di, int64_t, 32, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v64di, int64_t, 64, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT (v128di, int64_t, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256di, int64_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) + +/* { dg-final { scan-assembler-times {vmerge\.vxm} 5 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c new file mode 100644 index 00000000000..b8d952ef6ad --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c @@ -0,0 +1,337 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var0, var1) +DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256hf, _Float16, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512hf, _Float16, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024hf, _Float16, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT ( + v2048hf, _Float16, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */ +/* { dg-final { scan-assembler-not {vfslide1down\.vf} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c new file mode 100644 index 00000000000..1db68fcf3fe --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c @@ -0,0 +1,178 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4sf, float, 4, var0, var1, var0, var1) +DEF_REPEAT (v8sf, float, 8, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v16sf, float, 16, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT (v32sf, float, 32, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1) +DEF_REPEAT (v64sf, float, 64, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) +DEF_REPEAT (v128sf, float, 128, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v256sf, float, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v512sf, float, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1) +DEF_REPEAT ( + v1024sf, float, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, + var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, + var1) + +/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */ +/* { dg-final { scan-assembler-not {vfslide1down\.vf} } } */