From patchwork Tue Jan 31 22:19:43 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: 51051 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp63397wrn; Tue, 31 Jan 2023 14:20:40 -0800 (PST) X-Google-Smtp-Source: AK7set9TiVnrXRKJwIaI/tmZUGuyRjoXq3S+5ch08hKspYuuLuVTZI+ai0ELZpKrNJKYcmJYiaJo X-Received: by 2002:a17:906:1845:b0:805:1e6e:6777 with SMTP id w5-20020a170906184500b008051e6e6777mr4734797eje.23.1675203640724; Tue, 31 Jan 2023 14:20:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675203640; cv=none; d=google.com; s=arc-20160816; b=OZMTKx556PlWUTesS5QeqJDSLNsdnX0sc8PMDeN2YpKwCbzoYZxHF6ugde0h1oFwjY NSJHAXfHX3ifyBU/ScPOJZNODpaCqwMbt4C6A4sfPqI2Wz24Nr7QWF6UkYmxV/HBKJuK wmp/FzSSK0eQFwKuESRtRknskyX7+osDkdQhy9cMsBNtY3psa0F2IwpgZy0hSd01UOvS gQuavZ0p2CrWvsf86IcsVqwATWue6AEmfIicys7glUmkhzX0F0UcM6dwCtascIfMhRFj uZa5/l5OCOk9MsiaFfpkFXYeHlibWqCtL8Mrn+B/qZgYXthTKq3ikeDz/znklZGESiyV aqwA== 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=ZH0kogtBBykloMd7d6v3iwJdaKemR/PKplYsb/7/a04=; b=VtBIOvZL9EK5y9YpY7pPKL2hiESJXGoXfXZrRq3oMpjV+Ou9c8BoarmD999TcAFRpj ZuHe9i9st4FHioalWN8o7pTqKLvxp8/20vqnBv/DtdAr2WQhWT+s/MjbGWftrPI3VwhK ohCuxJkEM21hjzvUyzVZ8orYmi884W5SC3d7NkwMPBPJJYwuREcOIQZC/HnExi8vNhRH 1C7Fkc8o2DXMscHi+NUnt865qXx7HiTXtz4HJDNidsEpjV/Emv1XsttHLRh3lZwUmD1D UCeIfFagyiO9WcoJjGIpV+ATQ86ExrJF735QOWnZNxeKhMFoW1Vc3BPlGxJ6q1akHOvQ 7j/w== 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 az21-20020a170907905500b0087bdac06a43si15601998ejc.562.2023.01.31.14.20.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Jan 2023 14:20:40 -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; 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 1FFCD3858289 for ; Tue, 31 Jan 2023 22:20:25 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbg153.qq.com (smtpbg153.qq.com [13.245.218.24]) by sourceware.org (Postfix) with ESMTPS id B6FDA3858D33 for ; Tue, 31 Jan 2023 22:19:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B6FDA3858D33 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: bizesmtp81t1675203585tmie91lr Received: from rios-cad5.localdomain ( [58.60.1.11]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 01 Feb 2023 06:19:44 +0800 (CST) X-QQ-SSF: 01400000000000E0L000000A0000000 X-QQ-FEAT: 7QbCsSX/jDZ0O4mvdGkJFuHHniAq4k7g13Wq2CtYBJKE+sO4xskdkEDmX5NQI BfDE1xB27E5pA9ZbnlaHpQHP2xlFDnU6fH9W43po3QlCD4BLFkoP1nLQnsgMJMawnjpr+8q WceS2X9ZIJhzYIxYCZ5kDeTfF4lxjl3rJqxIGcVgNcs/Aoq5xXgcJOndCt73Ye/j/wh9AiH ouK0ij4xvM9xDMLcOy+dV0pZLNs4jEbdtEYZaY3JXtJ2xBApXaN4be7TWq6oEf0GM8TnzjI 2ZSSVhFsvS5gxwhEMRP1YmShVMuqG+w16XDjuZziQSSJir+Jm07mEJF/e0kVNhLwyNrityr RzxkiIeU/ycPTWcGWbrCuBTSUwfIPXrz53j/hZmM9IHeef2V+NUn2PHgn10UA== X-QQ-GoodBg: 2 From: juzhe.zhong@rivai.ai To: gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, Ju-Zhe Zhong Subject: [PATCH] RISC-V: Add vsra.vx C++ API tests Date: Wed, 1 Feb 2023 06:19:43 +0800 Message-Id: <20230131221943.24518-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=-12.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, 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?1756578332759153313?= X-GMAIL-MSGID: =?utf-8?q?1756578332759153313?= From: Ju-Zhe Zhong gcc/testsuite/ChangeLog: * g++.target/riscv/rvv/base/vsra_vx-1.C: New test. * g++.target/riscv/rvv/base/vsra_vx-2.C: New test. * g++.target/riscv/rvv/base/vsra_vx-3.C: New test. * g++.target/riscv/rvv/base/vsra_vx_mu-1.C: New test. * g++.target/riscv/rvv/base/vsra_vx_mu-2.C: New test. * g++.target/riscv/rvv/base/vsra_vx_mu-3.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tu-1.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tu-2.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tu-3.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tum-1.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tum-2.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tum-3.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tumu-1.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tumu-2.C: New test. * g++.target/riscv/rvv/base/vsra_vx_tumu-3.C: New test. --- .../g++.target/riscv/rvv/base/vsra_vx-1.C | 314 ++++++++++++++++++ .../g++.target/riscv/rvv/base/vsra_vx-2.C | 314 ++++++++++++++++++ .../g++.target/riscv/rvv/base/vsra_vx-3.C | 314 ++++++++++++++++++ .../g++.target/riscv/rvv/base/vsra_vx_mu-1.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_mu-2.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_mu-3.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_tu-1.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_tu-2.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_tu-3.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_tum-1.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_tum-2.C | 160 +++++++++ .../g++.target/riscv/rvv/base/vsra_vx_tum-3.C | 160 +++++++++ .../riscv/rvv/base/vsra_vx_tumu-1.C | 160 +++++++++ .../riscv/rvv/base/vsra_vx_tumu-2.C | 160 +++++++++ .../riscv/rvv/base/vsra_vx_tumu-3.C | 160 +++++++++ 15 files changed, 2862 insertions(+) create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-1.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-2.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-3.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-1.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-2.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-3.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-1.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-2.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-3.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-1.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-2.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-3.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-1.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-2.C create mode 100644 gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-3.C diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-1.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-1.C new file mode 100644 index 00000000000..e3c152f7f4e --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-1.C @@ -0,0 +1,314 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra(vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint8mf4_t test___riscv_vsra(vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint8mf2_t test___riscv_vsra(vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint8m1_t test___riscv_vsra(vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint8m2_t test___riscv_vsra(vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint8m4_t test___riscv_vsra(vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint8m8_t test___riscv_vsra(vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint16mf4_t test___riscv_vsra(vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint16mf2_t test___riscv_vsra(vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint16m1_t test___riscv_vsra(vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint16m2_t test___riscv_vsra(vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint16m4_t test___riscv_vsra(vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint16m8_t test___riscv_vsra(vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint32mf2_t test___riscv_vsra(vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint32m1_t test___riscv_vsra(vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint32m2_t test___riscv_vsra(vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint32m4_t test___riscv_vsra(vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint32m8_t test___riscv_vsra(vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint64m1_t test___riscv_vsra(vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint64m2_t test___riscv_vsra(vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint64m4_t test___riscv_vsra(vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint64m8_t test___riscv_vsra(vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,vl); +} + + +vint8mf8_t test___riscv_vsra(vbool64_t mask,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint8mf4_t test___riscv_vsra(vbool32_t mask,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint8mf2_t test___riscv_vsra(vbool16_t mask,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint8m1_t test___riscv_vsra(vbool8_t mask,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint8m2_t test___riscv_vsra(vbool4_t mask,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint8m4_t test___riscv_vsra(vbool2_t mask,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint8m8_t test___riscv_vsra(vbool1_t mask,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint16mf4_t test___riscv_vsra(vbool64_t mask,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint16mf2_t test___riscv_vsra(vbool32_t mask,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint16m1_t test___riscv_vsra(vbool16_t mask,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint16m2_t test___riscv_vsra(vbool8_t mask,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint16m4_t test___riscv_vsra(vbool4_t mask,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint16m8_t test___riscv_vsra(vbool2_t mask,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint32mf2_t test___riscv_vsra(vbool64_t mask,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint32m1_t test___riscv_vsra(vbool32_t mask,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint32m2_t test___riscv_vsra(vbool16_t mask,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint32m4_t test___riscv_vsra(vbool8_t mask,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint32m8_t test___riscv_vsra(vbool4_t mask,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint64m1_t test___riscv_vsra(vbool64_t mask,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint64m2_t test___riscv_vsra(vbool32_t mask,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint64m4_t test___riscv_vsra(vbool16_t mask,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + +vint64m8_t test___riscv_vsra(vbool8_t mask,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,vl); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-2.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-2.C new file mode 100644 index 00000000000..eb2a55e7f29 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-2.C @@ -0,0 +1,314 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra(vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint8mf4_t test___riscv_vsra(vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint8mf2_t test___riscv_vsra(vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint8m1_t test___riscv_vsra(vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint8m2_t test___riscv_vsra(vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint8m4_t test___riscv_vsra(vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint8m8_t test___riscv_vsra(vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint16mf4_t test___riscv_vsra(vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint16mf2_t test___riscv_vsra(vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint16m1_t test___riscv_vsra(vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint16m2_t test___riscv_vsra(vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint16m4_t test___riscv_vsra(vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint16m8_t test___riscv_vsra(vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint32mf2_t test___riscv_vsra(vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint32m1_t test___riscv_vsra(vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint32m2_t test___riscv_vsra(vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint32m4_t test___riscv_vsra(vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint32m8_t test___riscv_vsra(vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint64m1_t test___riscv_vsra(vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint64m2_t test___riscv_vsra(vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint64m4_t test___riscv_vsra(vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint64m8_t test___riscv_vsra(vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,31); +} + + +vint8mf8_t test___riscv_vsra(vbool64_t mask,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint8mf4_t test___riscv_vsra(vbool32_t mask,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint8mf2_t test___riscv_vsra(vbool16_t mask,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint8m1_t test___riscv_vsra(vbool8_t mask,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint8m2_t test___riscv_vsra(vbool4_t mask,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint8m4_t test___riscv_vsra(vbool2_t mask,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint8m8_t test___riscv_vsra(vbool1_t mask,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint16mf4_t test___riscv_vsra(vbool64_t mask,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint16mf2_t test___riscv_vsra(vbool32_t mask,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint16m1_t test___riscv_vsra(vbool16_t mask,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint16m2_t test___riscv_vsra(vbool8_t mask,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint16m4_t test___riscv_vsra(vbool4_t mask,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint16m8_t test___riscv_vsra(vbool2_t mask,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint32mf2_t test___riscv_vsra(vbool64_t mask,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint32m1_t test___riscv_vsra(vbool32_t mask,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint32m2_t test___riscv_vsra(vbool16_t mask,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint32m4_t test___riscv_vsra(vbool8_t mask,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint32m8_t test___riscv_vsra(vbool4_t mask,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint64m1_t test___riscv_vsra(vbool64_t mask,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint64m2_t test___riscv_vsra(vbool32_t mask,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint64m4_t test___riscv_vsra(vbool16_t mask,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + +vint64m8_t test___riscv_vsra(vbool8_t mask,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,31); +} + + + +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-3.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-3.C new file mode 100644 index 00000000000..1332c14c50c --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx-3.C @@ -0,0 +1,314 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra(vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint8mf4_t test___riscv_vsra(vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint8mf2_t test___riscv_vsra(vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint8m1_t test___riscv_vsra(vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint8m2_t test___riscv_vsra(vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint8m4_t test___riscv_vsra(vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint8m8_t test___riscv_vsra(vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint16mf4_t test___riscv_vsra(vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint16mf2_t test___riscv_vsra(vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint16m1_t test___riscv_vsra(vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint16m2_t test___riscv_vsra(vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint16m4_t test___riscv_vsra(vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint16m8_t test___riscv_vsra(vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint32mf2_t test___riscv_vsra(vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint32m1_t test___riscv_vsra(vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint32m2_t test___riscv_vsra(vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint32m4_t test___riscv_vsra(vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint32m8_t test___riscv_vsra(vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint64m1_t test___riscv_vsra(vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint64m2_t test___riscv_vsra(vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint64m4_t test___riscv_vsra(vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint64m8_t test___riscv_vsra(vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(op1,shift,32); +} + + +vint8mf8_t test___riscv_vsra(vbool64_t mask,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint8mf4_t test___riscv_vsra(vbool32_t mask,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint8mf2_t test___riscv_vsra(vbool16_t mask,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint8m1_t test___riscv_vsra(vbool8_t mask,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint8m2_t test___riscv_vsra(vbool4_t mask,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint8m4_t test___riscv_vsra(vbool2_t mask,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint8m8_t test___riscv_vsra(vbool1_t mask,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint16mf4_t test___riscv_vsra(vbool64_t mask,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint16mf2_t test___riscv_vsra(vbool32_t mask,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint16m1_t test___riscv_vsra(vbool16_t mask,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint16m2_t test___riscv_vsra(vbool8_t mask,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint16m4_t test___riscv_vsra(vbool4_t mask,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint16m8_t test___riscv_vsra(vbool2_t mask,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint32mf2_t test___riscv_vsra(vbool64_t mask,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint32m1_t test___riscv_vsra(vbool32_t mask,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint32m2_t test___riscv_vsra(vbool16_t mask,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint32m4_t test___riscv_vsra(vbool8_t mask,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint32m8_t test___riscv_vsra(vbool4_t mask,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint64m1_t test___riscv_vsra(vbool64_t mask,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint64m2_t test___riscv_vsra(vbool32_t mask,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint64m4_t test___riscv_vsra(vbool16_t mask,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + +vint64m8_t test___riscv_vsra(vbool8_t mask,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra(mask,op1,shift,32); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*t[au],\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-1.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-1.C new file mode 100644 index 00000000000..3fa75d27f8d --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-1.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_mu(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint8mf4_t test___riscv_vsra_mu(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint8mf2_t test___riscv_vsra_mu(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint8m1_t test___riscv_vsra_mu(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint8m2_t test___riscv_vsra_mu(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint8m4_t test___riscv_vsra_mu(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint8m8_t test___riscv_vsra_mu(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint16mf4_t test___riscv_vsra_mu(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint16mf2_t test___riscv_vsra_mu(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint16m1_t test___riscv_vsra_mu(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint16m2_t test___riscv_vsra_mu(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint16m4_t test___riscv_vsra_mu(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint16m8_t test___riscv_vsra_mu(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint32mf2_t test___riscv_vsra_mu(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint32m1_t test___riscv_vsra_mu(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint32m2_t test___riscv_vsra_mu(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint32m4_t test___riscv_vsra_mu(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint32m8_t test___riscv_vsra_mu(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint64m1_t test___riscv_vsra_mu(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint64m2_t test___riscv_vsra_mu(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint64m4_t test___riscv_vsra_mu(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + +vint64m8_t test___riscv_vsra_mu(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,vl); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-2.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-2.C new file mode 100644 index 00000000000..44181df1b51 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-2.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_mu(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint8mf4_t test___riscv_vsra_mu(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint8mf2_t test___riscv_vsra_mu(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint8m1_t test___riscv_vsra_mu(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint8m2_t test___riscv_vsra_mu(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint8m4_t test___riscv_vsra_mu(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint8m8_t test___riscv_vsra_mu(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint16mf4_t test___riscv_vsra_mu(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint16mf2_t test___riscv_vsra_mu(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint16m1_t test___riscv_vsra_mu(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint16m2_t test___riscv_vsra_mu(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint16m4_t test___riscv_vsra_mu(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint16m8_t test___riscv_vsra_mu(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint32mf2_t test___riscv_vsra_mu(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint32m1_t test___riscv_vsra_mu(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint32m2_t test___riscv_vsra_mu(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint32m4_t test___riscv_vsra_mu(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint32m8_t test___riscv_vsra_mu(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint64m1_t test___riscv_vsra_mu(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint64m2_t test___riscv_vsra_mu(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint64m4_t test___riscv_vsra_mu(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + +vint64m8_t test___riscv_vsra_mu(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,31); +} + + + +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-3.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-3.C new file mode 100644 index 00000000000..1abdadecb72 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_mu-3.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_mu(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint8mf4_t test___riscv_vsra_mu(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint8mf2_t test___riscv_vsra_mu(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint8m1_t test___riscv_vsra_mu(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint8m2_t test___riscv_vsra_mu(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint8m4_t test___riscv_vsra_mu(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint8m8_t test___riscv_vsra_mu(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint16mf4_t test___riscv_vsra_mu(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint16mf2_t test___riscv_vsra_mu(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint16m1_t test___riscv_vsra_mu(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint16m2_t test___riscv_vsra_mu(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint16m4_t test___riscv_vsra_mu(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint16m8_t test___riscv_vsra_mu(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint32mf2_t test___riscv_vsra_mu(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint32m1_t test___riscv_vsra_mu(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint32m2_t test___riscv_vsra_mu(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint32m4_t test___riscv_vsra_mu(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint32m8_t test___riscv_vsra_mu(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint64m1_t test___riscv_vsra_mu(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint64m2_t test___riscv_vsra_mu(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint64m4_t test___riscv_vsra_mu(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + +vint64m8_t test___riscv_vsra_mu(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_mu(mask,merge,op1,shift,32); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*t[au],\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-1.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-1.C new file mode 100644 index 00000000000..58f5571b3ee --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-1.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tu(vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint8mf4_t test___riscv_vsra_tu(vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint8mf2_t test___riscv_vsra_tu(vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint8m1_t test___riscv_vsra_tu(vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint8m2_t test___riscv_vsra_tu(vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint8m4_t test___riscv_vsra_tu(vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint8m8_t test___riscv_vsra_tu(vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint16mf4_t test___riscv_vsra_tu(vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint16mf2_t test___riscv_vsra_tu(vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint16m1_t test___riscv_vsra_tu(vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint16m2_t test___riscv_vsra_tu(vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint16m4_t test___riscv_vsra_tu(vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint16m8_t test___riscv_vsra_tu(vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint32mf2_t test___riscv_vsra_tu(vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint32m1_t test___riscv_vsra_tu(vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint32m2_t test___riscv_vsra_tu(vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint32m4_t test___riscv_vsra_tu(vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint32m8_t test___riscv_vsra_tu(vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint64m1_t test___riscv_vsra_tu(vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint64m2_t test___riscv_vsra_tu(vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint64m4_t test___riscv_vsra_tu(vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + +vint64m8_t test___riscv_vsra_tu(vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,vl); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-2.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-2.C new file mode 100644 index 00000000000..61c62c7341d --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-2.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tu(vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint8mf4_t test___riscv_vsra_tu(vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint8mf2_t test___riscv_vsra_tu(vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint8m1_t test___riscv_vsra_tu(vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint8m2_t test___riscv_vsra_tu(vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint8m4_t test___riscv_vsra_tu(vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint8m8_t test___riscv_vsra_tu(vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint16mf4_t test___riscv_vsra_tu(vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint16mf2_t test___riscv_vsra_tu(vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint16m1_t test___riscv_vsra_tu(vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint16m2_t test___riscv_vsra_tu(vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint16m4_t test___riscv_vsra_tu(vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint16m8_t test___riscv_vsra_tu(vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint32mf2_t test___riscv_vsra_tu(vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint32m1_t test___riscv_vsra_tu(vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint32m2_t test___riscv_vsra_tu(vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint32m4_t test___riscv_vsra_tu(vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint32m8_t test___riscv_vsra_tu(vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint64m1_t test___riscv_vsra_tu(vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint64m2_t test___riscv_vsra_tu(vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint64m4_t test___riscv_vsra_tu(vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + +vint64m8_t test___riscv_vsra_tu(vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,31); +} + + + +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-3.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-3.C new file mode 100644 index 00000000000..7f3465692e5 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tu-3.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tu(vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint8mf4_t test___riscv_vsra_tu(vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint8mf2_t test___riscv_vsra_tu(vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint8m1_t test___riscv_vsra_tu(vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint8m2_t test___riscv_vsra_tu(vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint8m4_t test___riscv_vsra_tu(vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint8m8_t test___riscv_vsra_tu(vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint16mf4_t test___riscv_vsra_tu(vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint16mf2_t test___riscv_vsra_tu(vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint16m1_t test___riscv_vsra_tu(vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint16m2_t test___riscv_vsra_tu(vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint16m4_t test___riscv_vsra_tu(vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint16m8_t test___riscv_vsra_tu(vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint32mf2_t test___riscv_vsra_tu(vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint32m1_t test___riscv_vsra_tu(vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint32m2_t test___riscv_vsra_tu(vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint32m4_t test___riscv_vsra_tu(vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint32m8_t test___riscv_vsra_tu(vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint64m1_t test___riscv_vsra_tu(vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint64m2_t test___riscv_vsra_tu(vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint64m4_t test___riscv_vsra_tu(vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + +vint64m8_t test___riscv_vsra_tu(vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tu(merge,op1,shift,32); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-1.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-1.C new file mode 100644 index 00000000000..18b034c4b72 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-1.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tum(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint8mf4_t test___riscv_vsra_tum(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint8mf2_t test___riscv_vsra_tum(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint8m1_t test___riscv_vsra_tum(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint8m2_t test___riscv_vsra_tum(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint8m4_t test___riscv_vsra_tum(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint8m8_t test___riscv_vsra_tum(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint16mf4_t test___riscv_vsra_tum(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint16mf2_t test___riscv_vsra_tum(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint16m1_t test___riscv_vsra_tum(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint16m2_t test___riscv_vsra_tum(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint16m4_t test___riscv_vsra_tum(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint16m8_t test___riscv_vsra_tum(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint32mf2_t test___riscv_vsra_tum(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint32m1_t test___riscv_vsra_tum(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint32m2_t test___riscv_vsra_tum(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint32m4_t test___riscv_vsra_tum(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint32m8_t test___riscv_vsra_tum(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint64m1_t test___riscv_vsra_tum(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint64m2_t test___riscv_vsra_tum(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint64m4_t test___riscv_vsra_tum(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + +vint64m8_t test___riscv_vsra_tum(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,vl); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-2.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-2.C new file mode 100644 index 00000000000..a4ece2a0fb7 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-2.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tum(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint8mf4_t test___riscv_vsra_tum(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint8mf2_t test___riscv_vsra_tum(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint8m1_t test___riscv_vsra_tum(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint8m2_t test___riscv_vsra_tum(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint8m4_t test___riscv_vsra_tum(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint8m8_t test___riscv_vsra_tum(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint16mf4_t test___riscv_vsra_tum(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint16mf2_t test___riscv_vsra_tum(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint16m1_t test___riscv_vsra_tum(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint16m2_t test___riscv_vsra_tum(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint16m4_t test___riscv_vsra_tum(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint16m8_t test___riscv_vsra_tum(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint32mf2_t test___riscv_vsra_tum(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint32m1_t test___riscv_vsra_tum(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint32m2_t test___riscv_vsra_tum(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint32m4_t test___riscv_vsra_tum(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint32m8_t test___riscv_vsra_tum(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint64m1_t test___riscv_vsra_tum(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint64m2_t test___riscv_vsra_tum(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint64m4_t test___riscv_vsra_tum(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + +vint64m8_t test___riscv_vsra_tum(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,31); +} + + + +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-3.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-3.C new file mode 100644 index 00000000000..bcac816f5fe --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tum-3.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tum(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint8mf4_t test___riscv_vsra_tum(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint8mf2_t test___riscv_vsra_tum(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint8m1_t test___riscv_vsra_tum(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint8m2_t test___riscv_vsra_tum(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint8m4_t test___riscv_vsra_tum(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint8m8_t test___riscv_vsra_tum(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint16mf4_t test___riscv_vsra_tum(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint16mf2_t test___riscv_vsra_tum(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint16m1_t test___riscv_vsra_tum(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint16m2_t test___riscv_vsra_tum(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint16m4_t test___riscv_vsra_tum(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint16m8_t test___riscv_vsra_tum(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint32mf2_t test___riscv_vsra_tum(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint32m1_t test___riscv_vsra_tum(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint32m2_t test___riscv_vsra_tum(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint32m4_t test___riscv_vsra_tum(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint32m8_t test___riscv_vsra_tum(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint64m1_t test___riscv_vsra_tum(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint64m2_t test___riscv_vsra_tum(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint64m4_t test___riscv_vsra_tum(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + +vint64m8_t test___riscv_vsra_tum(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tum(mask,merge,op1,shift,32); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*tu,\s*m[au]\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-1.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-1.C new file mode 100644 index 00000000000..3e540c1584f --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-1.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tumu(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint8mf4_t test___riscv_vsra_tumu(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint8mf2_t test___riscv_vsra_tumu(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint8m1_t test___riscv_vsra_tumu(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint8m2_t test___riscv_vsra_tumu(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint8m4_t test___riscv_vsra_tumu(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint8m8_t test___riscv_vsra_tumu(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint16mf4_t test___riscv_vsra_tumu(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint16mf2_t test___riscv_vsra_tumu(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint16m1_t test___riscv_vsra_tumu(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint16m2_t test___riscv_vsra_tumu(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint16m4_t test___riscv_vsra_tumu(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint16m8_t test___riscv_vsra_tumu(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint32mf2_t test___riscv_vsra_tumu(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint32m1_t test___riscv_vsra_tumu(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint32m2_t test___riscv_vsra_tumu(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint32m4_t test___riscv_vsra_tumu(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint32m8_t test___riscv_vsra_tumu(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint64m1_t test___riscv_vsra_tumu(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint64m2_t test___riscv_vsra_tumu(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint64m4_t test___riscv_vsra_tumu(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + +vint64m8_t test___riscv_vsra_tumu(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,vl); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-2.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-2.C new file mode 100644 index 00000000000..9b7f3c74e07 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-2.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tumu(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint8mf4_t test___riscv_vsra_tumu(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint8mf2_t test___riscv_vsra_tumu(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint8m1_t test___riscv_vsra_tumu(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint8m2_t test___riscv_vsra_tumu(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint8m4_t test___riscv_vsra_tumu(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint8m8_t test___riscv_vsra_tumu(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint16mf4_t test___riscv_vsra_tumu(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint16mf2_t test___riscv_vsra_tumu(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint16m1_t test___riscv_vsra_tumu(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint16m2_t test___riscv_vsra_tumu(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint16m4_t test___riscv_vsra_tumu(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint16m8_t test___riscv_vsra_tumu(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint32mf2_t test___riscv_vsra_tumu(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint32m1_t test___riscv_vsra_tumu(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint32m2_t test___riscv_vsra_tumu(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint32m4_t test___riscv_vsra_tumu(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint32m8_t test___riscv_vsra_tumu(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint64m1_t test___riscv_vsra_tumu(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint64m2_t test___riscv_vsra_tumu(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint64m4_t test___riscv_vsra_tumu(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + +vint64m8_t test___riscv_vsra_tumu(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,31); +} + + + +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e8,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e16,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e32,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*31,\s*e64,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-3.C b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-3.C new file mode 100644 index 00000000000..f9efaf17349 --- /dev/null +++ b/gcc/testsuite/g++.target/riscv/rvv/base/vsra_vx_tumu-3.C @@ -0,0 +1,160 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include "riscv_vector.h" + +vint8mf8_t test___riscv_vsra_tumu(vbool64_t mask,vint8mf8_t merge,vint8mf8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint8mf4_t test___riscv_vsra_tumu(vbool32_t mask,vint8mf4_t merge,vint8mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint8mf2_t test___riscv_vsra_tumu(vbool16_t mask,vint8mf2_t merge,vint8mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint8m1_t test___riscv_vsra_tumu(vbool8_t mask,vint8m1_t merge,vint8m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint8m2_t test___riscv_vsra_tumu(vbool4_t mask,vint8m2_t merge,vint8m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint8m4_t test___riscv_vsra_tumu(vbool2_t mask,vint8m4_t merge,vint8m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint8m8_t test___riscv_vsra_tumu(vbool1_t mask,vint8m8_t merge,vint8m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint16mf4_t test___riscv_vsra_tumu(vbool64_t mask,vint16mf4_t merge,vint16mf4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint16mf2_t test___riscv_vsra_tumu(vbool32_t mask,vint16mf2_t merge,vint16mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint16m1_t test___riscv_vsra_tumu(vbool16_t mask,vint16m1_t merge,vint16m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint16m2_t test___riscv_vsra_tumu(vbool8_t mask,vint16m2_t merge,vint16m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint16m4_t test___riscv_vsra_tumu(vbool4_t mask,vint16m4_t merge,vint16m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint16m8_t test___riscv_vsra_tumu(vbool2_t mask,vint16m8_t merge,vint16m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint32mf2_t test___riscv_vsra_tumu(vbool64_t mask,vint32mf2_t merge,vint32mf2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint32m1_t test___riscv_vsra_tumu(vbool32_t mask,vint32m1_t merge,vint32m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint32m2_t test___riscv_vsra_tumu(vbool16_t mask,vint32m2_t merge,vint32m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint32m4_t test___riscv_vsra_tumu(vbool8_t mask,vint32m4_t merge,vint32m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint32m8_t test___riscv_vsra_tumu(vbool4_t mask,vint32m8_t merge,vint32m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint64m1_t test___riscv_vsra_tumu(vbool64_t mask,vint64m1_t merge,vint64m1_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint64m2_t test___riscv_vsra_tumu(vbool32_t mask,vint64m2_t merge,vint64m2_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint64m4_t test___riscv_vsra_tumu(vbool16_t mask,vint64m4_t merge,vint64m4_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + +vint64m8_t test___riscv_vsra_tumu(vbool8_t mask,vint64m8_t merge,vint64m8_t op1,size_t shift,size_t vl) +{ + return __riscv_vsra_tumu(mask,merge,op1,shift,32); +} + + + +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e16,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m1,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m2,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m4,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e64,\s*m8,\s*tu,\s*mu\s+vsra\.vx\s+v[0-9]+,\s*v[0-9]+,\s*[a-x0-9]+,\s*v0.t\s+} 1 } } */