From patchwork Sat Nov 5 12:29:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 15967 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp967195wru; Sat, 5 Nov 2022 05:35:39 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5jDWnkg2p3shRLs4YrDEjn/B8R5jVvybF0j24S3HkAf1oFuqQt3q7IfOAuqBeojxJqwbrY X-Received: by 2002:a05:6402:1b01:b0:463:a54a:d551 with SMTP id by1-20020a0564021b0100b00463a54ad551mr25736269edb.428.1667651738867; Sat, 05 Nov 2022 05:35:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667651738; cv=none; d=google.com; s=arc-20160816; b=L3Pr07o9HSo9XYGpAkrDJu2M9yxGyqb1DMppl1l5wtoaGMVt6SKINRl4naAmP9jDyx rIfdyElsT6PpiN34+AnhpbCh/SM4lUOx/Dtc9bkXiKsJsxojNBhnvZEzpe3RqIitYAov BHj9Jl0ThvHG5fWNJc8C1CUpezEXKy7d7J5szJF8pcY898BhOmBwhv6RLxWUdeGBn3Ff oXAXs3epHlINnUkiUmzHzE/EwnW2iJ2BsDJE1lNNM8PfRbbTlXbsLG+agRiu3J13uSA9 be74hp3PyB2UpcDGfP/Z9GNNqP+8mqFWeR/hAADV6DesqmHZdT83VvylJl2sZPP1552F q2Mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:reply-to:from:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:dmarc-filter:delivered-to:dkim-signature :dkim-filter; bh=pSxiXP5Xov1mNqQ76LzZHtLbsSCpHUPj7/xYFYUxflY=; b=edR3xnFCjDHWQ7TXCM+UJezA9qp1fShVPN4a1X9FOkV8XrdkJzy3dY1UacGvtcoSfL a8wJMJC9+fkeWbunBASBS/293CQP2LNWpSmS5ADwpmWnM7MtAKJlp+FYyLBk/aCoVjiq f7YmInknQVIuz4FyJ2m1OucHGwkTFGh1xhXdS++ngS1FWOPFvIYGrVELWz49ZnNJPVLu Z4u1WAdP20n9EnuxwHLlFxN72KiMn1P9X416h2Lx7U/7c1R3O/B5EjjETSzr+IMs9CUa xChP/+mItiwBxa9IhtNg3Na5SZPEg3XyTCF9g5ldQCktKP6EkQtKcJaXYSy226Jzw4ap J8GQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=GoHUcVMJ; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id a8-20020a1709064a4800b007ae1723e8d7si1839607ejv.610.2022.11.05.05.35.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Nov 2022 05:35:38 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=GoHUcVMJ; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4F5C13857352 for ; Sat, 5 Nov 2022 12:33:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4F5C13857352 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1667651628; bh=pSxiXP5Xov1mNqQ76LzZHtLbsSCpHUPj7/xYFYUxflY=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=GoHUcVMJPEEWNNX/xjHppigjGnhcj7oXfS71iqPkOibJPtvhDp/cuy+m3T8HhZv+G jKcWnaavsK0T7zdmk1VC67BbstKyN5RXSVlyyp0iS1ZIfObhsMkZZcKxLjOE9mRZ+3 IdqTWzwf5bXqZVR1kkR96mJDxyPzSdAtDSZdIM2g= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-sender-0.a4lg.com (mail-sender-0.a4lg.com [IPv6:2401:2500:203:30b:4000:6bfe:4757:0]) by sourceware.org (Postfix) with ESMTPS id A9E69385841E for ; Sat, 5 Nov 2022 12:31:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A9E69385841E Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 00F4830008A; Sat, 5 Nov 2022 12:31:18 +0000 (UTC) To: Tsukasa OI , Nelson Chu , Kito Cheng , Palmer Dabbelt Subject: [PATCH 11/12] RISC-V: Reorganize/enhance 'Zb*' extension tests Date: Sat, 5 Nov 2022 12:29:17 +0000 Message-Id: <2d9befc5bc5eed80b6bd7da6d092a61b1162ecac.1667651354.git.research_trasio@irq.a4lg.com> In-Reply-To: References: Mime-Version: 1.0 X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, SCC_10_SHORT_WORD_LINES, SCC_20_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tsukasa OI via Binutils From: Tsukasa OI Reply-To: Tsukasa OI Cc: binutils@sourceware.org Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748659589768466491?= X-GMAIL-MSGID: =?utf-8?q?1748659589768466491?= This commit reorganizes tests for 'Zb*' extensions and adds "no required extension" testcases based on new test utilities. It also contains minor tidying (such as using different registers per operand). gas/ChangeLog: * testsuite/gas/riscv/zb-ext.s: Reorganize and make some tidying. * testsuite/gas/riscv/zb-ext-32.d: Reflect new zb-ext.s. Make matching pattern stricter. * testsuite/gas/riscv/zb-ext-64.d: Likewise. * testsuite/gas/riscv/zb-ext-32-noalias.d: Likewise. * testsuite/gas/riscv/zb-ext-64-noalias.d: Likewise. * testsuite/gas/riscv/zb-ext-32-noarch.d: New test. * testsuite/gas/riscv/zb-ext-32-noarch.l: Likewise. * testsuite/gas/riscv/zb-ext-64-noarch.d: New test. * testsuite/gas/riscv/zb-ext-64-noarch.l: Likewise. * testsuite/gas/riscv/b-ext.s: Removed. * testsuite/gas/riscv/b-ext.d: Removed. * testsuite/gas/riscv/b-ext-64.s: Removed. * testsuite/gas/riscv/b-ext-64.d: Removed. * testsuite/gas/riscv/b-ext-na.d: Removed. * testsuite/gas/riscv/b-ext-64-na.d: Removed. --- gas/testsuite/gas/riscv/b-ext-64.d | 72 ---------------- gas/testsuite/gas/riscv/b-ext-64.s | 64 -------------- gas/testsuite/gas/riscv/b-ext.d | 51 ----------- gas/testsuite/gas/riscv/b-ext.s | 43 ---------- .../riscv/{b-ext-na.d => zb-ext-32-noalias.d} | 38 ++++----- gas/testsuite/gas/riscv/zb-ext-32-noarch.d | 3 + gas/testsuite/gas/riscv/zb-ext-32-noarch.l | 60 +++++++++++++ gas/testsuite/gas/riscv/zb-ext-32.d | 51 +++++++++++ .../{b-ext-64-na.d => zb-ext-64-noalias.d} | 72 ++++++++-------- gas/testsuite/gas/riscv/zb-ext-64-noarch.d | 3 + gas/testsuite/gas/riscv/zb-ext-64-noarch.l | 59 +++++++++++++ gas/testsuite/gas/riscv/zb-ext-64.d | 72 ++++++++++++++++ gas/testsuite/gas/riscv/zb-ext.s | 84 +++++++++++++++++++ 13 files changed, 387 insertions(+), 285 deletions(-) delete mode 100644 gas/testsuite/gas/riscv/b-ext-64.d delete mode 100644 gas/testsuite/gas/riscv/b-ext-64.s delete mode 100644 gas/testsuite/gas/riscv/b-ext.d delete mode 100644 gas/testsuite/gas/riscv/b-ext.s rename gas/testsuite/gas/riscv/{b-ext-na.d => zb-ext-32-noalias.d} (67%) create mode 100644 gas/testsuite/gas/riscv/zb-ext-32-noarch.d create mode 100644 gas/testsuite/gas/riscv/zb-ext-32-noarch.l create mode 100644 gas/testsuite/gas/riscv/zb-ext-32.d rename gas/testsuite/gas/riscv/{b-ext-64-na.d => zb-ext-64-noalias.d} (73%) create mode 100644 gas/testsuite/gas/riscv/zb-ext-64-noarch.d create mode 100644 gas/testsuite/gas/riscv/zb-ext-64-noarch.l create mode 100644 gas/testsuite/gas/riscv/zb-ext-64.d create mode 100644 gas/testsuite/gas/riscv/zb-ext.s diff --git a/gas/testsuite/gas/riscv/b-ext-64.d b/gas/testsuite/gas/riscv/b-ext-64.d deleted file mode 100644 index f88fef9aeb2..00000000000 --- a/gas/testsuite/gas/riscv/b-ext-64.d +++ /dev/null @@ -1,72 +0,0 @@ -#as: -march=rv64i_zba_zbb_zbc_zbs -#source: b-ext-64.s -#objdump: -d - -.*:[ ]+file format .* - - -Disassembly of section .text: - -0+000 : -[ ]+0:[ ]+60051513[ ]+clz[ ]+a0,a0 -[ ]+4:[ ]+60151513[ ]+ctz[ ]+a0,a0 -[ ]+8:[ ]+60251513[ ]+cpop[ ]+a0,a0 -[ ]+c:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 -[ ]+10:[ ]+0ac5d533[ ]+minu[ ]+a0,a1,a2 -[ ]+14:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 -[ ]+18:[ ]+0ac5f533[ ]+maxu[ ]+a0,a1,a2 -[ ]+1c:[ ]+60451513[ ]+sext.b[ ]+a0,a0 -[ ]+20:[ ]+60551513[ ]+sext.h[ ]+a0,a0 -[ ]+24:[ ]+0805453b[ ]+zext.h[ ]+a0,a0 -[ ]+28:[ ]+40c5f533[ ]+andn[ ]+a0,a1,a2 -[ ]+2c:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 -[ ]+30:[ ]+40c5c533[ ]+xnor[ ]+a0,a1,a2 -[ ]+34:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 -[ ]+38:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 -[ ]+3c:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 -[ ]+40:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 -[ ]+44:[ ]+6b855513[ ]+rev8[ ]+a0,a0 -[ ]+48:[ ]+28755513[ ]+orc.b[ ]+a0,a0 -[ ]+4c:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 -[ ]+50:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 -[ ]+54:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 -[ ]+58:[ ]+0ac59533[ ]+clmul[ ]+a0,a1,a2 -[ ]+5c:[ ]+0ac5b533[ ]+clmulh[ ]+a0,a1,a2 -[ ]+60:[ ]+0ac5a533[ ]+clmulr[ ]+a0,a1,a2 -[ ]+64:[ ]+6005151b[ ]+clzw[ ]+a0,a0 -[ ]+68:[ ]+6015151b[ ]+ctzw[ ]+a0,a0 -[ ]+6c:[ ]+6025151b[ ]+cpopw[ ]+a0,a0 -[ ]+70:[ ]+60c5953b[ ]+rolw[ ]+a0,a1,a2 -[ ]+74:[ ]+60c5d53b[ ]+rorw[ ]+a0,a1,a2 -[ ]+78:[ ]+6025d51b[ ]+rorw[ ]+a0,a1,0x2 -[ ]+7c:[ ]+6025d51b[ ]+rorw[ ]+a0,a1,0x2 -[ ]+80:[ ]+20c5a53b[ ]+sh1add.uw[ ]+a0,a1,a2 -[ ]+84:[ ]+20c5c53b[ ]+sh2add.uw[ ]+a0,a1,a2 -[ ]+88:[ ]+20c5e53b[ ]+sh3add.uw[ ]+a0,a1,a2 -[ ]+8c:[ ]+08c5853b[ ]+add.uw[ ]+a0,a1,a2 -[ ]+90:[ ]+0805853b[ ]+zext.w[ ]+a0,a1 -[ ]+94:[ ]+0825951b[ ]+slli.uw[ ]+a0,a1,0x2 -[ ]+[0-9a-f]+:[ ]+48059513[ ]+bclr[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+28059513[ ]+bset[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+68059513[ ]+binv[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+4805d513[ ]+bext[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+4bf59513[ ]+bclr[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+2bf59513[ ]+bset[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+6bf59513[ ]+binv[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+4bf5d513[ ]+bext[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+48c59533[ ]+bclr[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+28c59533[ ]+bset[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+68c59533[ ]+binv[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+48c5d533[ ]+bext[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+4bf59513[ ]+bclr[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+2bf59513[ ]+bset[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+6bf59513[ ]+binv[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+4bf5d513[ ]+bext[ ]+a0,a1,0x3f diff --git a/gas/testsuite/gas/riscv/b-ext-64.s b/gas/testsuite/gas/riscv/b-ext-64.s deleted file mode 100644 index 57e501e9a41..00000000000 --- a/gas/testsuite/gas/riscv/b-ext-64.s +++ /dev/null @@ -1,64 +0,0 @@ -target: - clz a0, a0 - ctz a0, a0 - cpop a0, a0 - min a0, a1, a2 - minu a0, a1, a2 - max a0, a1, a2 - maxu a0, a1, a2 - sext.b a0, a0 - sext.h a0, a0 - zext.h a0, a0 - andn a0, a1, a2 - orn a0, a1, a2 - xnor a0, a1, a2 - rol a0, a1, a2 - ror a0, a1, a2 - ror a0, a1, 2 - rori a0, a1, 2 - rev8 a0, a0 - orc.b a0, a0 - sh1add a0, a1, a2 - sh2add a0, a1, a2 - sh3add a0, a1, a2 - clmul a0, a1, a2 - clmulh a0, a1, a2 - clmulr a0, a1, a2 - clzw a0, a0 - ctzw a0, a0 - cpopw a0, a0 - rolw a0, a1, a2 - rorw a0, a1, a2 - rorw a0, a1, 2 - roriw a0, a1, 2 - sh1add.uw a0, a1, a2 - sh2add.uw a0, a1, a2 - sh3add.uw a0, a1, a2 - add.uw a0, a1, a2 - zext.w a0, a1 - slli.uw a0, a1, 2 - bclri a0, a1, 0 - bclri a0, a1, 31 - bseti a0, a1, 0 - bseti a0, a1, 31 - binvi a0, a1, 0 - binvi a0, a1, 31 - bexti a0, a1, 0 - bexti a0, a1, 31 - bclri a0, a1, 63 - bseti a0, a1, 63 - binvi a0, a1, 63 - bexti a0, a1, 63 - bclr a0, a1, a2 - bset a0, a1, a2 - binv a0, a1, a2 - bext a0, a1, a2 - #aliases - bclr a0, a1, 31 - bset a0, a1, 31 - binv a0, a1, 31 - bext a0, a1, 31 - bclr a0, a1, 63 - bset a0, a1, 63 - binv a0, a1, 63 - bext a0, a1, 63 diff --git a/gas/testsuite/gas/riscv/b-ext.d b/gas/testsuite/gas/riscv/b-ext.d deleted file mode 100644 index 6bbbeb0f96b..00000000000 --- a/gas/testsuite/gas/riscv/b-ext.d +++ /dev/null @@ -1,51 +0,0 @@ -#as: -march=rv32i_zba_zbb_zbc_zbs -#source: b-ext.s -#objdump: -d - -.*:[ ]+file format .* - - -Disassembly of section .text: - -0+000 : -[ ]+0:[ ]+60051513[ ]+clz[ ]+a0,a0 -[ ]+4:[ ]+60151513[ ]+ctz[ ]+a0,a0 -[ ]+8:[ ]+60251513[ ]+cpop[ ]+a0,a0 -[ ]+c:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 -[ ]+10:[ ]+0ac5d533[ ]+minu[ ]+a0,a1,a2 -[ ]+14:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 -[ ]+18:[ ]+0ac5f533[ ]+maxu[ ]+a0,a1,a2 -[ ]+1c:[ ]+60451513[ ]+sext.b[ ]+a0,a0 -[ ]+20:[ ]+60551513[ ]+sext.h[ ]+a0,a0 -[ ]+24:[ ]+08054533[ ]+zext.h[ ]+a0,a0 -[ ]+28:[ ]+40c5f533[ ]+andn[ ]+a0,a1,a2 -[ ]+2c:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 -[ ]+30:[ ]+40c5c533[ ]+xnor[ ]+a0,a1,a2 -[ ]+34:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 -[ ]+38:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 -[ ]+3c:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 -[ ]+40:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 -[ ]+44:[ ]+69855513[ ]+rev8[ ]+a0,a0 -[ ]+48:[ ]+28755513[ ]+orc.b[ ]+a0,a0 -[ ]+4c:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 -[ ]+50:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 -[ ]+54:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 -[ ]+58:[ ]+0ac59533[ ]+clmul[ ]+a0,a1,a2 -[ ]+5c:[ ]+0ac5b533[ ]+clmulh[ ]+a0,a1,a2 -[ ]+60:[ ]+0ac5a533[ ]+clmulr[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+48059513[ ]+bclr[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+28059513[ ]+bset[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+68059513[ ]+binv[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+4805d513[ ]+bext[ ]+a0,a1,0x0 -[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+48c59533[ ]+bclr[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+28c59533[ ]+bset[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+68c59533[ ]+binv[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+48c5d533[ ]+bext[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f diff --git a/gas/testsuite/gas/riscv/b-ext.s b/gas/testsuite/gas/riscv/b-ext.s deleted file mode 100644 index 9de3fc32806..00000000000 --- a/gas/testsuite/gas/riscv/b-ext.s +++ /dev/null @@ -1,43 +0,0 @@ -target: - clz a0, a0 - ctz a0, a0 - cpop a0, a0 - min a0, a1, a2 - minu a0, a1, a2 - max a0, a1, a2 - maxu a0, a1, a2 - sext.b a0, a0 - sext.h a0, a0 - zext.h a0, a0 - andn a0, a1, a2 - orn a0, a1, a2 - xnor a0, a1, a2 - rol a0, a1, a2 - ror a0, a1, a2 - ror a0, a1, 2 - rori a0, a1, 2 - rev8 a0, a0 - orc.b a0, a0 - sh1add a0, a1, a2 - sh2add a0, a1, a2 - sh3add a0, a1, a2 - clmul a0, a1, a2 - clmulh a0, a1, a2 - clmulr a0, a1, a2 - bclri a0, a1, 0 - bclri a0, a1, 31 - bseti a0, a1, 0 - bseti a0, a1, 31 - binvi a0, a1, 0 - binvi a0, a1, 31 - bexti a0, a1, 0 - bexti a0, a1, 31 - bclr a0, a1, a2 - bset a0, a1, a2 - binv a0, a1, a2 - bext a0, a1, a2 - #aliases - bclr a0, a1, 31 - bset a0, a1, 31 - binv a0, a1, 31 - bext a0, a1, 31 diff --git a/gas/testsuite/gas/riscv/b-ext-na.d b/gas/testsuite/gas/riscv/zb-ext-32-noalias.d similarity index 67% rename from gas/testsuite/gas/riscv/b-ext-na.d rename to gas/testsuite/gas/riscv/zb-ext-32-noalias.d index 0c80a379fae..2d532321910 100644 --- a/gas/testsuite/gas/riscv/b-ext-na.d +++ b/gas/testsuite/gas/riscv/zb-ext-32-noalias.d @@ -1,6 +1,6 @@ -#as: -march=rv32i_zba_zbb_zbc_zbs -#source: b-ext.s -#objdump: -d -Mno-aliases +#as: -march=rv32i -I$srcdir/$subdir -defsym XLEN=32 +#source: zb-ext.s +#objdump: -d -M no-aliases .*:[ ]+file format .* @@ -8,28 +8,28 @@ Disassembly of section .text: 0+000 : -[ ]+[0-9a-f]+:[ ]+60051513[ ]+clz[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+60151513[ ]+ctz[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+60251513[ ]+cpop[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60059513[ ]+clz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60159513[ ]+ctz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60259513[ ]+cpop[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+0ac5d533[ ]+minu[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+0ac5f533[ ]+maxu[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+60451513[ ]+sext\.b[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+60551513[ ]+sext\.h[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+08054533[ ]+zext\.h[ ]+a0,a0 +[ ]+[0-9a-f]+:[ ]+60459513[ ]+sext\.b[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60559513[ ]+sext\.h[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0805c533[ ]+zext\.h[ ]+a0,a1 [ ]+[0-9a-f]+:[ ]+40c5f533[ ]+andn[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+40c5c533[ ]+xnor[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+6025d513[ ]+rori[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+6985d513[ ]+rev8[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+2875d513[ ]+orc\.b[ ]+a0,a1 [ ]+[0-9a-f]+:[ ]+6025d513[ ]+rori[ ]+a0,a1,0x2 -[ ]+[0-9a-f]+:[ ]+69855513[ ]+rev8[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+28755513[ ]+orc\.b[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+0ac59533[ ]+clmul[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+0ac5b533[ ]+clmulh[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+0ac5a533[ ]+clmulr[ ]+a0,a1,a2 diff --git a/gas/testsuite/gas/riscv/zb-ext-32-noarch.d b/gas/testsuite/gas/riscv/zb-ext-32-noarch.d new file mode 100644 index 00000000000..e9a2c0dda07 --- /dev/null +++ b/gas/testsuite/gas/riscv/zb-ext-32-noarch.d @@ -0,0 +1,3 @@ +#as: -march=rv32i -I$srcdir/$subdir -defsym XLEN=32 -defsym NOARCH=1 +#source: zb-ext.s +#error_output: zb-ext-32-noarch.l diff --git a/gas/testsuite/gas/riscv/zb-ext-32-noarch.l b/gas/testsuite/gas/riscv/zb-ext-32-noarch.l new file mode 100644 index 00000000000..16859b86ad9 --- /dev/null +++ b/gas/testsuite/gas/riscv/zb-ext-32-noarch.l @@ -0,0 +1,60 @@ +.*: Assembler messages: +.*: Error: unrecognized opcode `sh1add a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh2add a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh3add a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh1add\.uw a0,a1,a2' +.*: Error: unrecognized opcode `sh2add\.uw a0,a1,a2' +.*: Error: unrecognized opcode `sh3add\.uw a0,a1,a2' +.*: Error: unrecognized opcode `add\.uw a0,a1,a2' +.*: Error: unrecognized opcode `slli\.uw a0,a1,2' +.*: Error: unrecognized opcode `zext\.w a0,a1' +.*: Error: unrecognized opcode `clz a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `ctz a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `cpop a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `min a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `minu a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `max a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `maxu a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `andn a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `orn a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `xnor a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rol a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `ror a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rori a0,a1,2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rev8 a0,a1', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `orc\.b a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `clzw a0,a1' +.*: Error: unrecognized opcode `ctzw a0,a1' +.*: Error: unrecognized opcode `cpopw a0,a1' +.*: Error: unrecognized opcode `rolw a0,a1,a2' +.*: Error: unrecognized opcode `rorw a0,a1,a2' +.*: Error: unrecognized opcode `roriw a0,a1,2' +.*: Error: unrecognized opcode `ror a0,a1,2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rorw a0,a1,2' +.*: Error: unrecognized opcode `clmul a0,a1,a2', extension `zbc' or `zbkc' required +.*: Error: unrecognized opcode `clmulh a0,a1,a2', extension `zbc' or `zbkc' required +.*: Error: unrecognized opcode `clmulr a0,a1,a2', extension `zbc' required +.*: Error: unrecognized opcode `bclri a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `bclri a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bseti a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `bseti a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `binvi a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `binvi a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bexti a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `bexti a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bclr a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `bset a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `binv a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `bext a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `bclr a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bset a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `binv a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bext a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bclri a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bseti a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `binvi a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bexti a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bclr a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bset a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `binv a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bext a0,a1,63', extension `zbs' required diff --git a/gas/testsuite/gas/riscv/zb-ext-32.d b/gas/testsuite/gas/riscv/zb-ext-32.d new file mode 100644 index 00000000000..419f36a0745 --- /dev/null +++ b/gas/testsuite/gas/riscv/zb-ext-32.d @@ -0,0 +1,51 @@ +#as: -march=rv32i -I$srcdir/$subdir -defsym XLEN=32 +#source: zb-ext.s +#objdump: -d + +.*:[ ]+file format .* + + +Disassembly of section .text: + +0+000 : +[ ]+[0-9a-f]+:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60059513[ ]+clz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60159513[ ]+ctz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60259513[ ]+cpop[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5d533[ ]+minu[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5f533[ ]+maxu[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60459513[ ]+sext\.b[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60559513[ ]+sext\.h[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0805c533[ ]+zext\.h[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+40c5f533[ ]+andn[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+40c5c533[ ]+xnor[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+6985d513[ ]+rev8[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+2875d513[ ]+orc\.b[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+0ac59533[ ]+clmul[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5b533[ ]+clmulh[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5a533[ ]+clmulr[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+48059513[ ]+bclr[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+28059513[ ]+bset[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+68059513[ ]+binv[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4805d513[ ]+bext[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+48c59533[ ]+bclr[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+28c59533[ ]+bset[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+68c59533[ ]+binv[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+48c5d533[ ]+bext[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f diff --git a/gas/testsuite/gas/riscv/b-ext-64-na.d b/gas/testsuite/gas/riscv/zb-ext-64-noalias.d similarity index 73% rename from gas/testsuite/gas/riscv/b-ext-64-na.d rename to gas/testsuite/gas/riscv/zb-ext-64-noalias.d index ec5acd017ed..341eb22eb1b 100644 --- a/gas/testsuite/gas/riscv/b-ext-64-na.d +++ b/gas/testsuite/gas/riscv/zb-ext-64-noalias.d @@ -1,6 +1,6 @@ -#as: -march=rv64i_zba_zbb_zbc_zbs -#source: b-ext-64.s -#objdump: -d -Mno-aliases +#as: -march=rv64i -I$srcdir/$subdir -defsym XLEN=64 +#source: zb-ext.s +#objdump: -d -M no-aliases .*:[ ]+file format .* @@ -8,44 +8,44 @@ Disassembly of section .text: 0+000 : -[ ]+[0-9a-f]+:[ ]+60051513[ ]+clz[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+60151513[ ]+ctz[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+60251513[ ]+cpop[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5a53b[ ]+sh1add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5c53b[ ]+sh2add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5e53b[ ]+sh3add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+08c5853b[ ]+add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0825951b[ ]+slli\.uw[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+0805853b[ ]+add\.uw[ ]+a0,a1,zero +[ ]+[0-9a-f]+:[ ]+60059513[ ]+clz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60159513[ ]+ctz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60259513[ ]+cpop[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+0ac5d533[ ]+minu[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+0ac5f533[ ]+maxu[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+60451513[ ]+sext\.b[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+60551513[ ]+sext\.h[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+0805453b[ ]+zext\.h[ ]+a0,a0 +[ ]+[0-9a-f]+:[ ]+60459513[ ]+sext\.b[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60559513[ ]+sext\.h[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0805c53b[ ]+zext\.h[ ]+a0,a1 [ ]+[0-9a-f]+:[ ]+40c5f533[ ]+andn[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+40c5c533[ ]+xnor[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+6025d513[ ]+rori[ ]+a0,a1,0x2 -[ ]+[0-9a-f]+:[ ]+6025d513[ ]+rori[ ]+a0,a1,0x2 -[ ]+[0-9a-f]+:[ ]+6b855513[ ]+rev8[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+28755513[ ]+orc\.b[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+0ac59533[ ]+clmul[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+0ac5b533[ ]+clmulh[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+0ac5a533[ ]+clmulr[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+6005151b[ ]+clzw[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+6015151b[ ]+ctzw[ ]+a0,a0 -[ ]+[0-9a-f]+:[ ]+6025151b[ ]+cpopw[ ]+a0,a0 +[ ]+[0-9a-f]+:[ ]+6b85d513[ ]+rev8[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+2875d513[ ]+orc\.b[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+6005951b[ ]+clzw[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+6015951b[ ]+ctzw[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+6025951b[ ]+cpopw[ ]+a0,a1 [ ]+[0-9a-f]+:[ ]+60c5953b[ ]+rolw[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+60c5d53b[ ]+rorw[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+6025d51b[ ]+roriw[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+6025d513[ ]+rori[ ]+a0,a1,0x2 [ ]+[0-9a-f]+:[ ]+6025d51b[ ]+roriw[ ]+a0,a1,0x2 -[ ]+[0-9a-f]+:[ ]+20c5a53b[ ]+sh1add\.uw[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+20c5c53b[ ]+sh2add\.uw[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+20c5e53b[ ]+sh3add\.uw[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+08c5853b[ ]+add\.uw[ ]+a0,a1,a2 -[ ]+[0-9a-f]+:[ ]+0805853b[ ]+add\.uw[ ]+a0,a1,zero -[ ]+[0-9a-f]+:[ ]+0825951b[ ]+slli\.uw[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+0ac59533[ ]+clmul[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5b533[ ]+clmulh[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5a533[ ]+clmulr[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+48059513[ ]+bclri[ ]+a0,a1,0x0 [ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclri[ ]+a0,a1,0x1f [ ]+[0-9a-f]+:[ ]+28059513[ ]+bseti[ ]+a0,a1,0x0 @@ -54,10 +54,6 @@ Disassembly of section .text: [ ]+[0-9a-f]+:[ ]+69f59513[ ]+binvi[ ]+a0,a1,0x1f [ ]+[0-9a-f]+:[ ]+4805d513[ ]+bexti[ ]+a0,a1,0x0 [ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bexti[ ]+a0,a1,0x1f -[ ]+[0-9a-f]+:[ ]+4bf59513[ ]+bclri[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+2bf59513[ ]+bseti[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+6bf59513[ ]+binvi[ ]+a0,a1,0x3f -[ ]+[0-9a-f]+:[ ]+4bf5d513[ ]+bexti[ ]+a0,a1,0x3f [ ]+[0-9a-f]+:[ ]+48c59533[ ]+bclr[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+28c59533[ ]+bset[ ]+a0,a1,a2 [ ]+[0-9a-f]+:[ ]+68c59533[ ]+binv[ ]+a0,a1,a2 @@ -70,3 +66,7 @@ Disassembly of section .text: [ ]+[0-9a-f]+:[ ]+2bf59513[ ]+bseti[ ]+a0,a1,0x3f [ ]+[0-9a-f]+:[ ]+6bf59513[ ]+binvi[ ]+a0,a1,0x3f [ ]+[0-9a-f]+:[ ]+4bf5d513[ ]+bexti[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+4bf59513[ ]+bclri[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+2bf59513[ ]+bseti[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+6bf59513[ ]+binvi[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+4bf5d513[ ]+bexti[ ]+a0,a1,0x3f diff --git a/gas/testsuite/gas/riscv/zb-ext-64-noarch.d b/gas/testsuite/gas/riscv/zb-ext-64-noarch.d new file mode 100644 index 00000000000..3655678814f --- /dev/null +++ b/gas/testsuite/gas/riscv/zb-ext-64-noarch.d @@ -0,0 +1,3 @@ +#as: -march=rv64i -I$srcdir/$subdir -defsym XLEN=64 -defsym NOARCH=1 +#source: zb-ext.s +#error_output: zb-ext-64-noarch.l diff --git a/gas/testsuite/gas/riscv/zb-ext-64-noarch.l b/gas/testsuite/gas/riscv/zb-ext-64-noarch.l new file mode 100644 index 00000000000..9b358fb3b55 --- /dev/null +++ b/gas/testsuite/gas/riscv/zb-ext-64-noarch.l @@ -0,0 +1,59 @@ +.*: Assembler messages: +.*: Error: unrecognized opcode `sh1add a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh2add a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh3add a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh1add\.uw a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh2add\.uw a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `sh3add\.uw a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `add\.uw a0,a1,a2', extension `zba' required +.*: Error: unrecognized opcode `slli\.uw a0,a1,2', extension `zba' required +.*: Error: unrecognized opcode `clz a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `ctz a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `cpop a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `min a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `minu a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `max a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `maxu a0,a1,a2', extension `zbb' required +.*: Error: unrecognized opcode `andn a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `orn a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `xnor a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rol a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `ror a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rori a0,a1,2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rev8 a0,a1', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `orc\.b a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `clzw a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `ctzw a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `cpopw a0,a1', extension `zbb' required +.*: Error: unrecognized opcode `rolw a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rorw a0,a1,a2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `roriw a0,a1,2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `ror a0,a1,2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `rorw a0,a1,2', extension `zbb' or `zbkb' required +.*: Error: unrecognized opcode `clmul a0,a1,a2', extension `zbc' or `zbkc' required +.*: Error: unrecognized opcode `clmulh a0,a1,a2', extension `zbc' or `zbkc' required +.*: Error: unrecognized opcode `clmulr a0,a1,a2', extension `zbc' required +.*: Error: unrecognized opcode `bclri a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `bclri a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bseti a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `bseti a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `binvi a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `binvi a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bexti a0,a1,0', extension `zbs' required +.*: Error: unrecognized opcode `bexti a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bclr a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `bset a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `binv a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `bext a0,a1,a2', extension `zbs' required +.*: Error: unrecognized opcode `bclr a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bset a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `binv a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bext a0,a1,31', extension `zbs' required +.*: Error: unrecognized opcode `bclri a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bseti a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `binvi a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bexti a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bclr a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bset a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `binv a0,a1,63', extension `zbs' required +.*: Error: unrecognized opcode `bext a0,a1,63', extension `zbs' required diff --git a/gas/testsuite/gas/riscv/zb-ext-64.d b/gas/testsuite/gas/riscv/zb-ext-64.d new file mode 100644 index 00000000000..df206c0f298 --- /dev/null +++ b/gas/testsuite/gas/riscv/zb-ext-64.d @@ -0,0 +1,72 @@ +#as: -march=rv64i -I$srcdir/$subdir -defsym XLEN=64 +#source: zb-ext.s +#objdump: -d + +.*:[ ]+file format .* + + +Disassembly of section .text: + +0+000 : +[ ]+[0-9a-f]+:[ ]+20c5a533[ ]+sh1add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5c533[ ]+sh2add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5e533[ ]+sh3add[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5a53b[ ]+sh1add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5c53b[ ]+sh2add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+20c5e53b[ ]+sh3add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+08c5853b[ ]+add\.uw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0825951b[ ]+slli\.uw[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+0805853b[ ]+zext\.w[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60059513[ ]+clz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60159513[ ]+ctz[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60259513[ ]+cpop[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0ac5c533[ ]+min[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5d533[ ]+minu[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5e533[ ]+max[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5f533[ ]+maxu[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60459513[ ]+sext\.b[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60559513[ ]+sext\.h[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+0805c53b[ ]+zext\.h[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+40c5f533[ ]+andn[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+40c5c533[ ]+xnor[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+6b85d513[ ]+rev8[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+2875d513[ ]+orc\.b[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+6005951b[ ]+clzw[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+6015951b[ ]+ctzw[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+6025951b[ ]+cpopw[ ]+a0,a1 +[ ]+[0-9a-f]+:[ ]+60c5953b[ ]+rolw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+60c5d53b[ ]+rorw[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+6025d51b[ ]+rorw[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+6025d513[ ]+ror[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+6025d51b[ ]+rorw[ ]+a0,a1,0x2 +[ ]+[0-9a-f]+:[ ]+0ac59533[ ]+clmul[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5b533[ ]+clmulh[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+0ac5a533[ ]+clmulr[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+48059513[ ]+bclr[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+28059513[ ]+bset[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+68059513[ ]+binv[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4805d513[ ]+bext[ ]+a0,a1,0x0 +[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+48c59533[ ]+bclr[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+28c59533[ ]+bset[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+68c59533[ ]+binv[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+48c5d533[ ]+bext[ ]+a0,a1,a2 +[ ]+[0-9a-f]+:[ ]+49f59513[ ]+bclr[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+29f59513[ ]+bset[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+69f59513[ ]+binv[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+49f5d513[ ]+bext[ ]+a0,a1,0x1f +[ ]+[0-9a-f]+:[ ]+4bf59513[ ]+bclr[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+2bf59513[ ]+bset[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+6bf59513[ ]+binv[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+4bf5d513[ ]+bext[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+4bf59513[ ]+bclr[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+2bf59513[ ]+bset[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+6bf59513[ ]+binv[ ]+a0,a1,0x3f +[ ]+[0-9a-f]+:[ ]+4bf5d513[ ]+bext[ ]+a0,a1,0x3f diff --git a/gas/testsuite/gas/riscv/zb-ext.s b/gas/testsuite/gas/riscv/zb-ext.s new file mode 100644 index 00000000000..2489fcd47c2 --- /dev/null +++ b/gas/testsuite/gas/riscv/zb-ext.s @@ -0,0 +1,84 @@ +.include "testutils.inc" + +target: + SET_ARCH_START +zba + sh1add a0, a1, a2 + sh2add a0, a1, a2 + sh3add a0, a1, a2 +.if XLEN_GE_64 + sh1add.uw a0, a1, a2 + sh2add.uw a0, a1, a2 + sh3add.uw a0, a1, a2 + add.uw a0, a1, a2 + slli.uw a0, a1, 2 + zext.w a0, a1 # Alias (has RVI macro) +.endif + SET_ARCH_END + + SET_ARCH_START +zbb + clz a0, a1 + ctz a0, a1 + cpop a0, a1 + min a0, a1, a2 + minu a0, a1, a2 + max a0, a1, a2 + maxu a0, a1, a2 + sext.b a0, a1 # Has RVI macro + sext.h a0, a1 # Has RVI macro + zext.h a0, a1 # Has RVI macro + andn a0, a1, a2 + orn a0, a1, a2 + xnor a0, a1, a2 + rol a0, a1, a2 + ror a0, a1, a2 + rori a0, a1, 2 + rev8 a0, a1 + orc.b a0, a1 +.if XLEN_GE_64 + clzw a0, a1 + ctzw a0, a1 + cpopw a0, a1 + rolw a0, a1, a2 + rorw a0, a1, a2 + roriw a0, a1, 2 +.endif + ror a0, a1, 2 # Alias +.if XLEN_GE_64 + rorw a0, a1, 2 # Alias +.endif + SET_ARCH_END + + SET_ARCH_START +zbc + clmul a0, a1, a2 + clmulh a0, a1, a2 + clmulr a0, a1, a2 + SET_ARCH_END + + SET_ARCH_START +zbs + bclri a0, a1, 0 + bclri a0, a1, 31 + bseti a0, a1, 0 + bseti a0, a1, 31 + binvi a0, a1, 0 + binvi a0, a1, 31 + bexti a0, a1, 0 + bexti a0, a1, 31 + bclr a0, a1, a2 + bset a0, a1, a2 + binv a0, a1, a2 + bext a0, a1, a2 + bclr a0, a1, 31 # Alias + bset a0, a1, 31 # Alias + binv a0, a1, 31 # Alias + bext a0, a1, 31 # Alias +.if XLEN_GE_64 + bclri a0, a1, 63 + bseti a0, a1, 63 + binvi a0, a1, 63 + bexti a0, a1, 63 + bclr a0, a1, 63 # Alias + bset a0, a1, 63 # Alias + binv a0, a1, 63 # Alias + bext a0, a1, 63 # Alias +.endif + SET_ARCH_END