From patchwork Thu Apr 6 14:42:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "juzhe.zhong@rivai.ai" X-Patchwork-Id: 7823 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1079721vqo; Thu, 6 Apr 2023 07:43:55 -0700 (PDT) X-Google-Smtp-Source: AKy350aF9YTz2UG8Y71uSWgN9UtGXQbLVFVcSSb+0cvGL7D+HMTXDGjX7QD91HqXDcmQUCTj+cH2 X-Received: by 2002:aa7:dbd8:0:b0:4fc:709f:7abd with SMTP id v24-20020aa7dbd8000000b004fc709f7abdmr5847088edt.2.1680792235472; Thu, 06 Apr 2023 07:43:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680792235; cv=none; d=google.com; s=arc-20160816; b=MMiDPpgLu6q6zJCkVusKasT3LV4z+NEWH1UjYE8LyPIvrcMGm9HswiuHkfeyozItBg 9fX4zffrnFRdFZtradPYjXpTO/sIA3SqIrK2uO3PUVc00bmVyJXyD5eBs9E3XztvaY7f nsAEhk6bRpDQZFo2to8ln+I6vyrVyihS0pn2pb9SUvBI3QAHRobMPYFa+tpHTXmhbKaq xygFjXtzpT0MhpYHV/3zA6MA0mqN4Bdf2EdzdSFdpo15uUfp2m8I0Vx0aMED3VXYJ7xA Q0xX1cl/UHmciZ8t9o+/hVjMsGY6PX94ET/M5cUl0rQP/Ifv6X0foBpuaEjElA4m+33w OFyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:feedback-id :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dmarc-filter:delivered-to; bh=MeRxpxcA+ZE3hgsbB9JVpPmx0er3G/AF8QaV/V0lLoY=; b=0pCkep2shIVEhStbljQEcdd91CAMWri0JzQKKF3GtkUbOkNr5YQ9upR4F3T5lHu5QG 3jDGeOwrRQzhGXnLXhCdvhVd0viopg+NyVDwhnpQWUbEyluoE5Xx38DUEe0uIqTAfk4X rpr44i8Ees6CHaKpdJzPZwd7DdN4bivtQbMIh1RYRTglx3DX53ZlJ5CbHsUQSnHnC7vc nNCmiKlGoo9fzLGmXvAQ26Ak/Wv9zrU9iU2QS7LUmLHGW7tyv3rY9DjrljuDswnHOmD2 xijx3t7GCYmgOXj3Y8gLnXsvdppILfSi/lK7ulLCNawHcldq8fLDVC4MkFtJ4EoC6uD/ Oq9Q== ARC-Authentication-Results: i=1; mx.google.com; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id l1-20020a056402124100b004abcb9e6563si1401195edw.80.2023.04.06.07.43.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Apr 2023 07:43:55 -0700 (PDT) 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; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A9F883854177 for ; Thu, 6 Apr 2023 14:43:09 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id ABCF03858D32 for ; Thu, 6 Apr 2023 14:42:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ABCF03858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp74t1680792145t4r3x6ej Received: from rios-cad5.localdomain ( [58.60.1.11]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 06 Apr 2023 22:42:23 +0800 (CST) X-QQ-SSF: 01400000000000F0O000000A0000000 X-QQ-FEAT: fs34Pe/+C2QCziRyZT1ICX5kdMbPT8uEuLguP4NhXOnjyNKo2VHBml+7g2wZU 15D4ALNpBVkoSNQPqfvHF+B/acFrX63VBFPqwx5Co5nAU1j25Herc+q7twrKI4zLluUeK6q Wy0kJxKZJ2BTMKHKyLOUz+w7HuBNCA+qmGEgoreEpdm5VhD3wN6/7NhBIlEiLXAv6WC5l4S zuaK+tuzcQzOvA5aUtjklfV5yPkttGSRJMjNKP+amqyHj7gx7aupA7Jh01GSV1ytSOwieUH ttm77dDfT+F3XT+e27Ix4YxfifFcfzqZD3GHAQ6RzKeNM7fHUIByWrYTy1T8Vbm7qbqJArq qmOkgCtP4Gtjsh+6hhQVX8+mlikNwaB5p9x+5R+0iRf54ui2Bb8vGvy2L9pUlSQSLUaHBhB jlayodNWi7MI4qTFXNiVUQ== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 1347835705417184827 From: juzhe.zhong@rivai.ai To: gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, palmer@dabbelt.com, richard.sandiford@arm.com, rguenther@suse.de, jeffreyalaw@gmail.com, Juzhe-Zhong Subject: [PATCH 0/3] RISC-V:Enable basic auto-vectorization for RVV Date: Thu, 6 Apr 2023 22:42:19 +0800 Message-Id: <20230406144222.316395-1-juzhe.zhong@rivai.ai> X-Mailer: git-send-email 2.36.3 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762438398716313785?= X-GMAIL-MSGID: =?utf-8?q?1762438398716313785?= From: Juzhe-Zhong PATCH 1: Add WHILE_LEN pattern in Loop Vectorizer to support decrement IV for RVV. PATCH 2: Enable basic auto-vectorization for RVV in RISC-V port. PATCH 3: Add testcases for basic RVV auto-vectorization of WHILE_LEN pattern includeing single rgroup test and multiple rgroup test of SLP. *** BLURB HERE *** Juzhe-Zhong (3): VECT: Add WHILE_LEN pattern to support decrement IV manipulation for loop vectorizer. RISC-V: Enable basic RVV auto-vectorization and support WHILE_LEN/LEN_LOAD/LEN_STORE pattern RISC-V: Add testcase for basic RVV auto-vectorization gcc/config/riscv/autovec.md | 63 ++ gcc/config/riscv/riscv-opts.h | 16 + gcc/config/riscv/riscv-protos.h | 3 +- gcc/config/riscv/riscv-v.cc | 61 +- gcc/config/riscv/riscv-vector-switch.def | 47 +- gcc/config/riscv/riscv-vsetvl.cc | 210 ++++- gcc/config/riscv/riscv-vsetvl.h | 1 + gcc/config/riscv/riscv.cc | 34 +- gcc/config/riscv/riscv.opt | 40 + gcc/config/riscv/vector.md | 6 +- gcc/doc/md.texi | 14 + gcc/internal-fn.cc | 29 + gcc/internal-fn.def | 1 + gcc/optabs.def | 1 + gcc/testsuite/gcc.target/riscv/rvv/api/vadc.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vadd.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vand.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vcpop.c | 65 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vdiv.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vdivu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vfirst.c | 65 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vid.c | 185 +++++ .../gcc.target/riscv/rvv/api/viota.c | 185 +++++ .../gcc.target/riscv/rvv/api/vle16.c | 105 +++ .../gcc.target/riscv/rvv/api/vle32.c | 129 +++ .../gcc.target/riscv/rvv/api/vle64.c | 73 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vle8.c | 121 +++ gcc/testsuite/gcc.target/riscv/rvv/api/vlm.c | 37 + .../gcc.target/riscv/rvv/api/vloxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vloxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vloxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vloxei8.c | 401 +++++++++ .../gcc.target/riscv/rvv/api/vlse16.c | 105 +++ .../gcc.target/riscv/rvv/api/vlse32.c | 129 +++ .../gcc.target/riscv/rvv/api/vlse64.c | 73 ++ .../gcc.target/riscv/rvv/api/vlse8.c | 121 +++ .../gcc.target/riscv/rvv/api/vluxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vluxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vluxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vluxei8.c | 401 +++++++++ .../gcc.target/riscv/rvv/api/vmacc.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmadc.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmadd.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmand.c | 37 + .../gcc.target/riscv/rvv/api/vmandn.c | 37 + gcc/testsuite/gcc.target/riscv/rvv/api/vmax.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmaxu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmclr.c | 37 + .../gcc.target/riscv/rvv/api/vmerge.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vmin.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vminu.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vmmv.c | 37 + .../gcc.target/riscv/rvv/api/vmnand.c | 37 + .../gcc.target/riscv/rvv/api/vmnor.c | 37 + .../gcc.target/riscv/rvv/api/vmnot.c | 37 + gcc/testsuite/gcc.target/riscv/rvv/api/vmor.c | 37 + .../gcc.target/riscv/rvv/api/vmorn.c | 37 + .../gcc.target/riscv/rvv/api/vmsbc.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmsbf.c | 65 ++ .../gcc.target/riscv/rvv/api/vmseq.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmset.c | 37 + .../gcc.target/riscv/rvv/api/vmsge.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsgeu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsgt.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsgtu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsif.c | 65 ++ .../gcc.target/riscv/rvv/api/vmsle.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsleu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmslt.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsltu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsne.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmsof.c | 65 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vmul.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmulh.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmulhsu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmulhu.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vmv.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmxnor.c | 37 + .../gcc.target/riscv/rvv/api/vmxor.c | 37 + gcc/testsuite/gcc.target/riscv/rvv/api/vneg.c | 185 +++++ .../gcc.target/riscv/rvv/api/vnmsac.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vnmsub.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vnot.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vnsra.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vnsrl.c | 249 ++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vor.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vrem.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vremu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vrsub.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsbc.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vse16.c | 105 +++ .../gcc.target/riscv/rvv/api/vse32.c | 129 +++ .../gcc.target/riscv/rvv/api/vse64.c | 73 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vse8.c | 121 +++ .../gcc.target/riscv/rvv/api/vsetvl.c | 97 +++ .../gcc.target/riscv/rvv/api/vsetvlmax.c | 97 +++ .../gcc.target/riscv/rvv/api/vsext_vf2.c | 129 +++ .../gcc.target/riscv/rvv/api/vsext_vf4.c | 81 ++ .../gcc.target/riscv/rvv/api/vsext_vf8.c | 41 + gcc/testsuite/gcc.target/riscv/rvv/api/vsll.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsm.c | 37 + .../gcc.target/riscv/rvv/api/vsoxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vsoxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vsoxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vsoxei8.c | 401 +++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsra.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsrl.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vsse16.c | 105 +++ .../gcc.target/riscv/rvv/api/vsse32.c | 129 +++ .../gcc.target/riscv/rvv/api/vsse64.c | 73 ++ .../gcc.target/riscv/rvv/api/vsse8.c | 121 +++ gcc/testsuite/gcc.target/riscv/rvv/api/vsub.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vsuxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vsuxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vsuxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vsuxei8.c | 401 +++++++++ .../gcc.target/riscv/rvv/api/vwadd.c | 489 +++++++++++ .../gcc.target/riscv/rvv/api/vwaddu.c | 489 +++++++++++ .../gcc.target/riscv/rvv/api/vwmacc.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmaccsu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmaccu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmaccus.c | 129 +++ .../gcc.target/riscv/rvv/api/vwmul.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmulsu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmulu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwsub.c | 489 +++++++++++ .../gcc.target/riscv/rvv/api/vwsubu.c | 489 +++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vxor.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vzext_vf2.c | 129 +++ .../gcc.target/riscv/rvv/api/vzext_vf4.c | 81 ++ .../gcc.target/riscv/rvv/api/vzext_vf8.c | 41 + .../rvv/autovec/partial/multiple_rgroup-1.c | 6 + .../rvv/autovec/partial/multiple_rgroup-1.h | 304 +++++++ .../rvv/autovec/partial/multiple_rgroup-2.c | 6 + .../rvv/autovec/partial/multiple_rgroup-2.h | 546 ++++++++++++ .../rvv/autovec/partial/multiple_rgroup-2.s | 774 ++++++++++++++++++ .../autovec/partial/multiple_rgroup_run-1.c | 19 + .../autovec/partial/multiple_rgroup_run-2.c | 19 + .../rvv/autovec/partial/single_rgroup-1.c | 8 + .../rvv/autovec/partial/single_rgroup-1.h | 106 +++ .../rvv/autovec/partial/single_rgroup_run-1.c | 19 + .../gcc.target/riscv/rvv/autovec/template-1.h | 68 ++ .../gcc.target/riscv/rvv/autovec/v-1.c | 4 + .../gcc.target/riscv/rvv/autovec/v-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve32f-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve32f-2.c | 5 + .../riscv/rvv/autovec/zve32f_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve32f_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve32x-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve32x-2.c | 6 + .../riscv/rvv/autovec/zve32x_zvl128b-1.c | 5 + .../riscv/rvv/autovec/zve32x_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve64d-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve64d-2.c | 4 + .../riscv/rvv/autovec/zve64d_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve64d_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve64f-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve64f-2.c | 4 + .../riscv/rvv/autovec/zve64f_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve64f_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve64x-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve64x-2.c | 4 + .../riscv/rvv/autovec/zve64x_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve64x_zvl128b-2.c | 6 + gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 16 + .../gcc.target/riscv/rvv/vsetvl/vsetvl-17.c | 2 +- gcc/tree-ssa-loop-manip.cc | 4 +- gcc/tree-ssa-loop-manip.h | 2 +- gcc/tree-vect-loop-manip.cc | 186 ++++- gcc/tree-vect-loop.cc | 35 +- gcc/tree-vect-stmts.cc | 9 +- gcc/tree-vectorizer.h | 4 +- 172 files changed, 36786 insertions(+), 46 deletions(-) create mode 100644 gcc/config/riscv/autovec.md create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vadc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vadd.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vand.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vcpop.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vdiv.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vdivu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vfirst.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vid.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/viota.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlm.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmacc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmadc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmadd.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmand.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmandn.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmax.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmaxu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmclr.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmerge.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmin.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vminu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmmv.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmnand.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmnor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmnot.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmorn.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsbc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsbf.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmseq.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmset.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsge.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsgeu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsgt.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsgtu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsif.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsle.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsleu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmslt.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsltu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsne.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsof.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmul.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmulh.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmulhsu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmulhu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmv.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmxnor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmxor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vneg.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnmsac.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnmsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnot.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnsra.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnsrl.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vrem.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vremu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vrsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsbc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsetvl.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsetvlmax.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsext_vf2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsext_vf4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsext_vf8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsll.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsm.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsra.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsrl.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwadd.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwaddu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmacc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmaccsu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmaccu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmaccus.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmul.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmulsu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmulu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwsubu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vxor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vzext_vf2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vzext_vf4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vzext_vf8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-1.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.s create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/template-1.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/v-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/v-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl128b-2.c