From patchwork Fri Nov 10 06:22:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Pan2" X-Patchwork-Id: 163776 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b129:0:b0:403:3b70:6f57 with SMTP id q9csp921307vqs; Thu, 9 Nov 2023 22:23:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IHViU9pZ4KBSa/PC9keGGPqFfZNjV83YAPyHUfIO3PPXZUZJajFDj09bb0YGXaAc6HMitjx X-Received: by 2002:a05:6214:1bca:b0:66f:ae60:8c51 with SMTP id m10-20020a0562141bca00b0066fae608c51mr8608615qvc.11.1699597399994; Thu, 09 Nov 2023 22:23:19 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1699597399; cv=pass; d=google.com; s=arc-20160816; b=iH2RrMxr6w4xV/vz7jm8IR4Fd4C5+9QTTg63fX2heO6T2P+rlHXw4YPQUDrBSQjc5l pB9t04/Xi65e9la5o6YkUVKY0Ki0cNuuM6Van4sD15+EsRPy3dwSDtfT3Zq8xtPduqNh OT1vMIIqA/mW24Ck+0eZmsRpcnucAV9ey4AovfrfP/OMBXohJGhs9B7JDU6tR89kKjDk 4FTKbmFLotqP1Zbh8gi6b0XUq8evuvmWSIlGWQM2bW+h1q32I6MXJvRlHzhMQ06xG6/5 CCiaFf6A5Vu7nSUNL0FlBcEWj7JRe348aJcznOpDuHcNOdCyQnV/iUJVdUwUOL2NpVZl 4KQA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=DAi19fmJbqwA0xV1DyFmnp88cDlyP8YcjVX3wGs2Sto=; fh=yqBQmCEeFYB2Wjmf8l8QkV/dOy5iKwSEx/iU/FYQjxU=; b=fr+LlylkMVXxTvEib21DzaBo7VVoGcoc0XDxUiikr/Ff/9p2KOAdb3In2G6+Md7/eE rDAA9YEoORo7r0gWwIr+uLosXemr+AEE+dG0ynOstNcPVUKKdTwfcx18NuZQEJHKREmw Md7aX5XmGhcZnXjAGmbEgBbyn4yGpzv4aNq8QemZNshNeQY7KUzDnyVwR8b0tvDI8C8u mN9m/56y0GmR53QkUVMdM7ETBB+cJhP5saPEF4YMwcGK1W3N6F/Mg6PjAEoSUSiwYRsp 6e/OvkmOdkG6FzI/oYCRStFq2trkk/5vqofchtl33wFg5rC/M5xss5f05kx1lhvyiIst djrg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=A33Uv1T3; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id z5-20020a0cfec5000000b006716a905fccsi4010618qvs.69.2023.11.09.22.23.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Nov 2023 22:23:19 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=A33Uv1T3; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A96933857713 for ; Fri, 10 Nov 2023 06:23:19 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id A87533858D1E for ; Fri, 10 Nov 2023 06:22:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A87533858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A87533858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=134.134.136.126 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699597371; cv=none; b=fRupK5CAakZ1Cb761gU2NqPN7LH4RNUVODdNBfDUJ7HRi9kRDYcUq2nwI+Sw2GJbpkywJ86xB8ATBcR/TfKNYfGi75hCJhhQMkVJjm4Ano1OUwKQpGAf1jyzSUJ0qxlNUVZ2UIRQOyidTbQK/iF3q0WKzfHJmMB5PjaHALVqegQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699597371; c=relaxed/simple; bh=haIpaLtU/wHOXGdNEMa8IJTIqMG1MV29oWONKzWeVjE=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=N5/LU9wh+1i0NNL8prZztyraoFL760nrq6ZFTD9bYfssU/DV8/RCkOEdgI9e3HQGmc1wPgeEKRuNskFYbTIQGvdVNwl4CKWbpq96jh3E18zsAlnd3COx64LJPQc+0kwDZn6T/nozhNVp4hE7Ru+kVrsqGbxejye3VTv7KV7/UqU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1699597364; x=1731133364; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=haIpaLtU/wHOXGdNEMa8IJTIqMG1MV29oWONKzWeVjE=; b=A33Uv1T3WH71GFFvVuJaQJdXey7Zos63vZwibTqJ65Z24Z6mu54FW6vb FFyT41qJ5mBqwkNhvzF2+sBK5AYl7D8tyvIQin5FbEbW1Z7Wt5t7089jT TD0YIfXvSIvcNjF7sWu2ck+bmwUw4oeMuLsPZbB77aJf+GLrEeo/M1d4H gKTALVj59KlwbW3cPp6EZZ+ad/F8Mex4nOwkZ9RMUTFbxOhp14KbqefRG c+XRIgQ8aUUBCk+njZHmTGMstf9zrJtVj4L8+qv+wA8kW6KX6ge3sR6IG IpWvwQG/MeUltixV4YR5YSJX5De3ixgk6PXZOvRmZgVh5APmuanzRFPRQ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10889"; a="375180700" X-IronPort-AV: E=Sophos;i="6.03,291,1694761200"; d="scan'208";a="375180700" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2023 22:22:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.03,291,1694761200"; d="scan'208";a="11394408" Received: from shvmail02.sh.intel.com ([10.239.244.9]) by orviesa001.jf.intel.com with ESMTP; 09 Nov 2023 22:22:41 -0800 Received: from pli-ubuntu.sh.intel.com (pli-ubuntu.sh.intel.com [10.239.159.47]) by shvmail02.sh.intel.com (Postfix) with ESMTP id B387F1005663; Fri, 10 Nov 2023 14:22:39 +0800 (CST) From: pan2.li@intel.com To: gcc-patches@gcc.gnu.org Cc: juzhe.zhong@rivai.ai, pan2.li@intel.com, yanzhang.wang@intel.com, kito.cheng@gmail.com Subject: [PATCH v1] RISC-V: Support vec_init for trailing same element Date: Fri, 10 Nov 2023 14:22:37 +0800 Message-Id: <20231110062237.3267408-1-pan2.li@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-9.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SCC_10_SHORT_WORD_LINES, SCC_20_SHORT_WORD_LINES, SCC_35_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782157043198434999 X-GMAIL-MSGID: 1782157043198434999 From: Pan Li This patch would like to support the vec_init for the trailing same element in the array. For example as below typedef double vnx16df __attribute__ ((vector_size (128))); __attribute__ ((noipa)) void f_vnx16df (double a, double b, double *out) { vnx16df v = {a, a, a, b, b, b, b, b, b, b, b, b, b, b, b, b}; *(vnx16df *) out = v; } Before this patch: f_vnx16df: vsetivli zero,16,e64,m8,ta,ma vfmv.v.f v8,fa0 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vfslide1down.vf v8,v8,fa1 vs8r.v v8,0(a0) ret After this patch: f_vnx16df: vsetivli zero,16,e64,m8,ta,ma vfmv.v.f v16,fa1 vfslide1up.vf v8,v16,fa0 vmv8r.v v16,v8 vfslide1up.vf v8,v16,fa0 vmv8r.v v16,v8 vfslide1up.vf v8,v16,fa0 vs8r.v v8,0(a0) ret gcc/ChangeLog: * config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem): New fun impl to expand the insn when trailing same elements. (expand_vec_init): Try trailing same elements when vec_init. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c: New test. * gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c: New test. * gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c: New test. Signed-off-by: Pan Li --- gcc/config/riscv/riscv-v.cc | 43 ++ .../rvv/autovec/vls-vlmax/init-same-tail-1.c | 21 + .../rvv/autovec/vls-vlmax/init-same-tail-2.c | 24 + .../rvv/autovec/vls-vlmax/init-same-tail-3.c | 24 + .../rvv/autovec/vls-vlmax/init-same-tail-4.c | 16 + .../rvv/autovec/vls-vlmax/init-same-tail-5.c | 16 + .../autovec/vls-vlmax/init-same-tail-run-1.c | 47 ++ .../autovec/vls-vlmax/init-same-tail-run-2.c | 48 ++ .../autovec/vls-vlmax/init-same-tail-run-3.c | 42 ++ .../riscv/rvv/autovec/vls/init-same-tail-1.c | 653 ++++++++++++++++++ .../riscv/rvv/autovec/vls/init-same-tail-2.c | 653 ++++++++++++++++++ .../riscv/rvv/autovec/vls/init-same-tail-3.c | 336 +++++++++ .../riscv/rvv/autovec/vls/init-same-tail-4.c | 336 +++++++++ .../riscv/rvv/autovec/vls/init-same-tail-5.c | 177 +++++ .../riscv/rvv/autovec/vls/init-same-tail-6.c | 177 +++++ .../riscv/rvv/autovec/vls/init-same-tail-7.c | 53 ++ .../riscv/rvv/autovec/vls/init-same-tail-8.c | 336 +++++++++ .../riscv/rvv/autovec/vls/init-same-tail-9.c | 177 +++++ 18 files changed, 3179 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index c32cd8abe6c..c6c54c39076 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -2126,6 +2126,44 @@ expand_vector_init_merge_repeating_sequence (rtx target, } } +/* Subroutine of expand_vec_init to handle case + when all trailing elements of builder are same. + This works as follows: + (a) Use expand_insn interface to broadcast last vector element in TARGET. + (b) Insert remaining elements in TARGET using insr. + + ??? The heuristic used is to do above if number of same trailing elements + is at least 3/4 of total number of elements, loosely based on + heuristic from mostly_zeros_p. May need fine-tuning. */ + +static bool +expand_vector_init_trailing_same_elem (rtx target, + const rtx_vector_builder &builder, + int nelts_reqd) +{ + int ndups = builder.count_dups (nelts_reqd - 1, -1, -1); + machine_mode mode = GET_MODE (target); + + if (ndups >= (3 * nelts_reqd) / 4) + { + rtx dup = expand_vector_broadcast (mode, builder.elt (nelts_reqd - 1)); + emit_move_insn (target, dup); + + for (int i = nelts_reqd - ndups - 1; i >= 0; i--) + { + unsigned int unspec + = FLOAT_MODE_P (mode) ? UNSPEC_VFSLIDE1UP : UNSPEC_VSLIDE1UP; + insn_code icode = code_for_pred_slide (unspec, mode); + rtx ops[] = {target, target, builder.elt (i)}; + emit_vlmax_insn (icode, BINARY_OP, ops); + } + + return true; + } + + return false; +} + /* Initialize register TARGET from the elements in PARALLEL rtx VALS. */ void @@ -2162,6 +2200,11 @@ expand_vec_init (rtx target, rtx vals) return; } + /* Case 4: Optimize trailing same elements sequence: + v = {y, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x}; */ + if (expand_vector_init_trailing_same_elem (target, v, nelts)) + return; + /* TODO: We will support more Initialization of vector in the future. */ } diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c new file mode 100644 index 00000000000..eca36794ab5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-1.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv_zvl1024b -mabi=lp64d" } */ + +#include + +typedef int64_t vnx16di __attribute__ ((vector_size (1024))); + +__attribute__ ((noipa)) void +f_vnx16di (int64_t a, int64_t b, int64_t *out) +{ + vnx16di v = { + a, a, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, + }; + *(vnx16di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\s+v[0-9]+,\s*[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 2 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c new file mode 100644 index 00000000000..b4174b7f8fb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-2.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef double vnx8df __attribute__ ((vector_size (64))); +typedef double vnx16df __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_vnx8df (double a, double b, double *out) +{ + vnx8df v = {a, b, b, b, b, b, b, b}; + *(vnx8df *) out = v; +} + +__attribute__ ((noipa)) void +f_vnx16df (double a, double b, double *out) +{ + vnx16df v = {a, a, a, b, b, b, b, b, b, b, b, b, b, b, b, b}; + *(vnx16df *) out = v; +} + +/* { dg-final { scan-assembler-times {vfmv\.v\.f\tv[0-9]+,\s*[a-x0-9]+} 2 } } */ +/* { dg-final { scan-assembler-times {vfslide1up\.vf\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 4 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c new file mode 100644 index 00000000000..4b7d7545d11 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-3.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef int64_t vnx8di __attribute__ ((vector_size (64))); +typedef int64_t vnx16di __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_vnx8di (int64_t a, int64_t b, int64_t *out) +{ + vnx8di v = {a, a, b, b, b, b, b, b}; + *(vnx8di *) out = v; +} + +__attribute__ ((noipa)) void +f_vnx16di (int64_t a, int64_t b, int64_t *out) +{ + vnx16di v = {a, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b}; + *(vnx16di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\tv[0-9]+,\s*[a-x0-9]+} 2 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c new file mode 100644 index 00000000000..6fefead0fc8 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-4.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef int64_t vnx8di __attribute__ ((vector_size (64))); + +__attribute__ ((noipa)) void +f_vnx8di (int64_t a, int64_t b, int64_t c, int64_t *out) +{ + vnx8di v = {a, b, c, c, c, c, c, c}; + *(vnx8di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\tv[0-9]+,\s*[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 2 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c new file mode 100644 index 00000000000..0e2aa3c3619 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-5.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=rv64gcv -mabi=lp64d" } */ + +#include + +typedef int64_t vnx16di __attribute__ ((vector_size (128))); + +__attribute__ ((noipa)) void +f_vnx16di (int64_t a, int64_t b, int64_t c, int64_t d, int64_t *out) +{ + vnx16di v = {a, b, c, d, d, d, d, d, d, d, d, d, d, d, d, d,}; + *(vnx16di *) out = v; +} + +/* { dg-final { scan-assembler-times {vmv\.v\.x\tv[0-9]+,\s*[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {vslide1up\.vx\tv[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+} 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c new file mode 100644 index 00000000000..467f4a60910 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-1.c @@ -0,0 +1,47 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3" } */ + +#include "init-same-tail-2.c" + +int +main () +{ + double a = -1789089.23423; + double b = -8916156.45644; + + double v_vnx8df[sizeof (vnx8df) / sizeof (double)]; + f_vnx8df (a, b, v_vnx8df); + + for (int i = 0; i < sizeof (vnx8df) / sizeof (double); i++) + { + if (i == 0) + { + if (v_vnx8df[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx8df[i] != b) + __builtin_abort (); + } + } + + double v_vnx16df[sizeof (vnx16df) / sizeof (double)]; + f_vnx16df (a, b, v_vnx16df); + + for (int i = 0; i < sizeof (vnx16df) / sizeof (double); i++) + { + if (i < 3) + { + if (v_vnx16df[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx16df[i] != b) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c new file mode 100644 index 00000000000..26354dea50a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-2.c @@ -0,0 +1,48 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3" } */ + +#include "init-same-tail-3.c" + +int +main () +{ + int64_t a = -178908923423; + int64_t b = -891615645644; + int64_t v_vnx8di[sizeof (vnx8di) / sizeof (int64_t)]; + + f_vnx8di (a, b, v_vnx8di); + + for (int i = 0; i < sizeof (vnx8di) / sizeof (int64_t); i++) + { + if (i < 2) + { + if (v_vnx8di[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx8di[i] != b) + __builtin_abort (); + } + } + + int64_t v_vnx16di[sizeof (vnx16di) / sizeof (int64_t)]; + + f_vnx16di (a, b, v_vnx16di); + + for (int i = 0; i < sizeof (vnx16di) / sizeof (int64_t); i++) + { + if (i == 0) + { + if (v_vnx16di[i] != a) + __builtin_abort (); + } + else + { + if (v_vnx16di[i] != b) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c new file mode 100644 index 00000000000..48e4e562136 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-same-tail-run-3.c @@ -0,0 +1,42 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-options "--param riscv-autovec-preference=fixed-vlmax -O3" } */ + +#include "init-same-tail-5.c" + +int +main () +{ + int64_t a = -178908923423; + int64_t b = -891615645644; + int64_t c = 78908923423; + int64_t d = 81615645644; + int64_t v_vnx16di[sizeof (vnx16di) / sizeof (int64_t)]; + + f_vnx16di (a, b, c, d, v_vnx16di); + + for (int i = 0; i < sizeof (vnx16di) / sizeof (int64_t); i++) + { + if (i == 0) + { + if (v_vnx16di[i] != a) + __builtin_abort (); + } + else if (i == 1) + { + if (v_vnx16di[i] != b) + __builtin_abort (); + } + else if (i == 2) + { + if (v_vnx16di[i] != c) + __builtin_abort (); + } + else + { + if (v_vnx16di[i] != d) + __builtin_abort (); + } + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c new file mode 100644 index 00000000000..09a9838f321 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-1.c @@ -0,0 +1,653 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256qi, int8_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512qi, int8_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024qi, int8_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048qi, int8_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v4096qi, int8_t, 4096, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 11 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c new file mode 100644 index 00000000000..519d31007fc --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-2.c @@ -0,0 +1,653 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256uqi, uint8_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512uqi, uint8_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024uqi, uint8_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048uqi, uint8_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v4096uqi, uint8_t, 4096, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 11 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c new file mode 100644 index 00000000000..185050fe8a2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-3.c @@ -0,0 +1,336 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256hi, int16_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512hi, int16_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024hi, int16_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048hi, int16_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 10 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c new file mode 100644 index 00000000000..8cac5d9de37 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-4.c @@ -0,0 +1,336 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1) +DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256uhi, uint16_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512uhi, uint16_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024uhi, uint16_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT ( + v2048uhi, uint16_t, 2048, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 10 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c new file mode 100644 index 00000000000..a79a4329787 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-5.c @@ -0,0 +1,177 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4si, int32_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8si, int32_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16si, int32_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32si, int32_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64si, int32_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128si, int32_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256si, int32_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512si, int32_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024si, int32_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 9 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c new file mode 100644 index 00000000000..2bea83d777c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-6.c @@ -0,0 +1,177 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var1, var1) +DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1) +DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256usi, uint32_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512usi, uint32_t, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024usi, uint32_t, 1024, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 9 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c new file mode 100644 index 00000000000..818fbbb129b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-7.c @@ -0,0 +1,53 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v16di, int64_t, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32di, int64_t, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64di, int64_t, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128di, int64_t, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256di, int64_t, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vslide1up\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[ax][0-9]+} 5 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c new file mode 100644 index 00000000000..78f438b42cb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-8.c @@ -0,0 +1,336 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var1, var1) +DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256hf, _Float16, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512hf, _Float16, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024hf, _Float16, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT ( + v2048hf, _Float16, 2048, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) + +/* { dg-final { scan-assembler-times {vfslide1up\.vf\s+v[0-9]+,\s*v[0-9]+,\s*[axf]+[0-9]+} 10 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c new file mode 100644 index 00000000000..dd3d933f556 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-same-tail-9.c @@ -0,0 +1,177 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */ + +#include "def.h" + +DEF_REPEAT (v4sf, float, 4, var0, var1, var1, var1) +DEF_REPEAT (v8sf, float, 8, var0, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v16sf, float, 16, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT (v32sf, float, 32, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1) +DEF_REPEAT (v64sf, float, 64, var0, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) +DEF_REPEAT (v128sf, float, 128, var0, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v256sf, float, 256, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v512sf, float, 512, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1) +DEF_REPEAT ( + v1024sf, float, 1024, var0, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, var1, + var1) + +/* { dg-final { scan-assembler-times {vfslide1up\.vf\s+v[0-9]+,\s*v[0-9]+,\s*[axf]+[0-9]+} 9 } } */