From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x329.google.com (mail-ot1-x329.google.com [IPv6:2607:f8b0:4864:20::329]) by sourceware.org (Postfix) with ESMTPS id C9C173858C78 for ; Tue, 29 Nov 2022 08:24:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C9C173858C78 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-ot1-x329.google.com with SMTP id 46-20020a9d0631000000b00666823da25fso8634021otn.0 for ; Tue, 29 Nov 2022 00:24:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=IwoZCLDBVPUJ+DdToBGr5kCjlTa4oDhqug+L1lgmGVA=; b=RQpFCvUnnpKvavNcCyKBc2DH6te9OQc4B4scYigsfSkNeQrv4MX820im9OqJc12EPP /i9VxtsqPKyLuOqMaJV7qBJRzKzXyGEvgFP8AgUBHtdWr2Vhc7BOXyvO4spxezTNlFKi FINyZzKp3AYbwYAXwm7B2DON9ZvDfXwKbIAh4WODLlYYifQPRtUg/KQy68w5jqr9Zy3i AbLekyjfPYIev0ywwTof28MpYGD8ss/NeQZW2TGrfZnKTvLfnlOXhRhnM168iHVaY3TO TVOnJZuxTBCssH6xc0Y+rBtVumjhtFAJ3YBh6o0g7uhn2FcCb+iI5XBIzBu3hmMbwvv9 afjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=IwoZCLDBVPUJ+DdToBGr5kCjlTa4oDhqug+L1lgmGVA=; b=PDny3izB34ZPdLeu2mKu/wSiwEhxeS/87KFLJ9IhTSkLW/UgfRnrBdfe7hnCSTM6nV 1J8XRkD5tW5qO6SMjiXXbQOK51epT7BSy0EuyO9wjP04P1HP/Mj0eW3a6RdIHEmWqvc/ /3sLvGtueuZgPuNhkS/hsW5v6L3fDXDp1V+kxn7UZlDJGLYRnYaqkDeR4Q6ygppFAbXW Ysk90NZrOTpCeFAIxA0Pl5idfl+BDrEJ77OVbaCkmz6gWhywJXUAv/h1ODCqN8TJUZqp u2jy3cr1taNAcEBA1h20GWW+cttxf2g2/iwbVB3mAdLRnHHc2tQJwqWkiEo3F9GEO+fA Vqpg== X-Gm-Message-State: ANoB5plzq13+duskctfldJgtQTIdouQgoMdf8YTOlQCmoXm1nKyubFHJ 1KdtzJ8VSc3UPH9a56XrDZgPp+S9VQvCV4nSSe7bpg== X-Google-Smtp-Source: AA0mqf4sBvEP271eNyRMmrrYUzNE/7nxukJKnGRA02Yo1o1VjreNhNjZdlpK+dcKLNON7MS92Zwz+XdgwtrR5nq9k28= X-Received: by 2002:a9d:61d6:0:b0:66d:685d:a138 with SMTP id h22-20020a9d61d6000000b0066d685da138mr27882314otk.208.1669710242077; Tue, 29 Nov 2022 00:24:02 -0800 (PST) MIME-Version: 1.0 References: <9378b9505e3e230e0a690c56e67d253e2a0f5864.1667651354.git.research_trasio@irq.a4lg.com> In-Reply-To: <9378b9505e3e230e0a690c56e67d253e2a0f5864.1667651354.git.research_trasio@irq.a4lg.com> From: Nelson Chu Date: Tue, 29 Nov 2022 16:23:51 +0800 Message-ID: Subject: Re: [PATCH 08/12] RISC-V: Refine/enhance 'M'/'Zmmul' extension tests To: Tsukasa OI Cc: Kito Cheng , Palmer Dabbelt , binutils@sourceware.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,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 List-Id: On Sat, Nov 5, 2022 at 8:30 PM Tsukasa OI wrote: > > This commit refines tests for 'M' and 'Zmmul' extensions and adds "no > required extension" testcases based on new test utilities. > > gas/ChangeLog: > > * testsuite/gas/riscv/m-ext.s: Refine using new testing utils. > * testsuite/gas/riscv/m-ext-32.d: Refine. > * testsuite/gas/riscv/m-ext-32-noarch.d: New test. > * testsuite/gas/riscv/m-ext-32-noarch.l: Likewise. > * testsuite/gas/riscv/m-ext-32-noarch-m.d: New test ased on > m-ext-fail-zmmul-32.d but refine. > * testsuite/gas/riscv/m-ext-32-noarch-m.l: New test ased on > m-ext-fail-zmmul-32.l. > * testsuite/gas/riscv/m-ext-64.d: Refine. > * testsuite/gas/riscv/m-ext-64-noarch.d: New test ased on > m-ext-fail-noarch-64.d but refine. > * testsuite/gas/riscv/m-ext-64-noarch.l: New test ased on > m-ext-fail-noarch-64.l. > * testsuite/gas/riscv/m-ext-64-noarch-m.d: New test ased on > m-ext-fail-zmmul-64.d but refine. > * testsuite/gas/riscv/m-ext-64-noarch-m.l: New test ased on > m-ext-fail-zmmul-64.l. > * testsuite/gas/riscv/m-ext-fail-xlen-32.d: Removed. > * testsuite/gas/riscv/m-ext-fail-xlen-32.l: Removed. > * testsuite/gas/riscv/m-ext-fail-zmmul-32.d: Removed. > * testsuite/gas/riscv/m-ext-fail-zmmul-64.d: Removed. > * testsuite/gas/riscv/m-ext-fail-noarch-64.d: Removed. > * testsuite/gas/riscv/zmmul-32.d: Removed as duplicate. > * testsuite/gas/riscv/zmmul-64.d: Removed as duplicate. > --- > gas/testsuite/gas/riscv/m-ext-32-noarch-m.d | 4 ++++ > ...-ext-fail-zmmul-32.l => m-ext-32-noarch-m.l} | 0 > gas/testsuite/gas/riscv/m-ext-32-noarch.d | 4 ++++ > gas/testsuite/gas/riscv/m-ext-32-noarch.l | 14 ++++++++++++++ > gas/testsuite/gas/riscv/m-ext-32.d | 2 +- > gas/testsuite/gas/riscv/m-ext-64-noarch-m.d | 4 ++++ > ...-ext-fail-zmmul-64.l => m-ext-64-noarch-m.l} | 0 > gas/testsuite/gas/riscv/m-ext-64-noarch.d | 4 ++++ > ...m-ext-fail-noarch-64.l => m-ext-64-noarch.l} | 0 > gas/testsuite/gas/riscv/m-ext-64.d | 2 +- > gas/testsuite/gas/riscv/m-ext-fail-noarch-64.d | 4 ---- > gas/testsuite/gas/riscv/m-ext-fail-xlen-32.d | 4 ---- > gas/testsuite/gas/riscv/m-ext-fail-xlen-32.l | 6 ------ > gas/testsuite/gas/riscv/m-ext-fail-zmmul-32.d | 4 ---- > gas/testsuite/gas/riscv/m-ext-fail-zmmul-64.d | 4 ---- > gas/testsuite/gas/riscv/m-ext.s | 17 +++++++++++------ > gas/testsuite/gas/riscv/zmmul-32.d | 14 -------------- > gas/testsuite/gas/riscv/zmmul-64.d | 15 --------------- > 18 files changed, 43 insertions(+), 59 deletions(-) > create mode 100644 gas/testsuite/gas/riscv/m-ext-32-noarch-m.d > rename gas/testsuite/gas/riscv/{m-ext-fail-zmmul-32.l => m-ext-32-noarch-m.l} (100%) > create mode 100644 gas/testsuite/gas/riscv/m-ext-32-noarch.d > create mode 100644 gas/testsuite/gas/riscv/m-ext-32-noarch.l > create mode 100644 gas/testsuite/gas/riscv/m-ext-64-noarch-m.d > rename gas/testsuite/gas/riscv/{m-ext-fail-zmmul-64.l => m-ext-64-noarch-m.l} (100%) > create mode 100644 gas/testsuite/gas/riscv/m-ext-64-noarch.d > rename gas/testsuite/gas/riscv/{m-ext-fail-noarch-64.l => m-ext-64-noarch.l} (100%) > delete mode 100644 gas/testsuite/gas/riscv/m-ext-fail-noarch-64.d > delete mode 100644 gas/testsuite/gas/riscv/m-ext-fail-xlen-32.d > delete mode 100644 gas/testsuite/gas/riscv/m-ext-fail-xlen-32.l > delete mode 100644 gas/testsuite/gas/riscv/m-ext-fail-zmmul-32.d > delete mode 100644 gas/testsuite/gas/riscv/m-ext-fail-zmmul-64.d > delete mode 100644 gas/testsuite/gas/riscv/zmmul-32.d > delete mode 100644 gas/testsuite/gas/riscv/zmmul-64.d > > diff --git a/gas/testsuite/gas/riscv/m-ext-32-noarch-m.d b/gas/testsuite/gas/riscv/m-ext-32-noarch-m.d > new file mode 100644 > index 00000000000..1d05564125f > --- /dev/null > +++ b/gas/testsuite/gas/riscv/m-ext-32-noarch-m.d > @@ -0,0 +1,4 @@ > +#as: -march=rv32i_zmmul -I$srcdir/$subdir -defsym XLEN=32 -defsym NOARCH_ARCH=1 > +#source: m-ext.s > +#objdump: -d > +#error_output: m-ext-32-noarch-m.l > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-zmmul-32.l b/gas/testsuite/gas/riscv/m-ext-32-noarch-m.l > similarity index 100% > rename from gas/testsuite/gas/riscv/m-ext-fail-zmmul-32.l > rename to gas/testsuite/gas/riscv/m-ext-32-noarch-m.l > diff --git a/gas/testsuite/gas/riscv/m-ext-32-noarch.d b/gas/testsuite/gas/riscv/m-ext-32-noarch.d > new file mode 100644 > index 00000000000..a708d429ac7 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/m-ext-32-noarch.d > @@ -0,0 +1,4 @@ > +#as: -march=rv32i -I$srcdir/$subdir -defsym XLEN=32 -defsym NOARCH=1 > +#source: m-ext.s > +#objdump: -d > +#error_output: m-ext-32-noarch.l > diff --git a/gas/testsuite/gas/riscv/m-ext-32-noarch.l b/gas/testsuite/gas/riscv/m-ext-32-noarch.l > new file mode 100644 > index 00000000000..f9179f45bb4 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/m-ext-32-noarch.l > @@ -0,0 +1,14 @@ > +.*Assembler messages: > +.*: Error: unrecognized opcode `mul a0,a1,a2', extension `m' or `zmmul' required > +.*: Error: unrecognized opcode `mulh a0,a1,a2', extension `m' or `zmmul' required > +.*: Error: unrecognized opcode `mulhsu a0,a1,a2', extension `m' or `zmmul' required > +.*: Error: unrecognized opcode `mulhu a0,a1,a2', extension `m' or `zmmul' required > +.*: Error: unrecognized opcode `div a0,a1,a2', extension `m' required > +.*: Error: unrecognized opcode `divu a0,a1,a2', extension `m' required > +.*: Error: unrecognized opcode `rem a0,a1,a2', extension `m' required > +.*: Error: unrecognized opcode `remu a0,a1,a2', extension `m' required > +.*: Error: unrecognized opcode `mulw a0,a1,a2' > +.*: Error: unrecognized opcode `divw a0,a1,a2' > +.*: Error: unrecognized opcode `divuw a0,a1,a2' > +.*: Error: unrecognized opcode `remw a0,a1,a2' > +.*: Error: unrecognized opcode `remuw a0,a1,a2' > diff --git a/gas/testsuite/gas/riscv/m-ext-32.d b/gas/testsuite/gas/riscv/m-ext-32.d > index fe2ef9af54b..02be2ef9569 100644 > --- a/gas/testsuite/gas/riscv/m-ext-32.d > +++ b/gas/testsuite/gas/riscv/m-ext-32.d > @@ -1,4 +1,4 @@ > -#as: -march=rv32im > +#as: -march=rv32i -I$srcdir/$subdir -defsym XLEN=32 > #source: m-ext.s > #objdump: -d > > diff --git a/gas/testsuite/gas/riscv/m-ext-64-noarch-m.d b/gas/testsuite/gas/riscv/m-ext-64-noarch-m.d > new file mode 100644 > index 00000000000..d74fbd0b682 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/m-ext-64-noarch-m.d > @@ -0,0 +1,4 @@ > +#as: -march=rv64i_zmmul -I$srcdir/$subdir -defsym XLEN=64 -defsym NOARCH_ARCH=1 > +#source: m-ext.s > +#objdump: -d > +#error_output: m-ext-64-noarch-m.l > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-zmmul-64.l b/gas/testsuite/gas/riscv/m-ext-64-noarch-m.l > similarity index 100% > rename from gas/testsuite/gas/riscv/m-ext-fail-zmmul-64.l > rename to gas/testsuite/gas/riscv/m-ext-64-noarch-m.l > diff --git a/gas/testsuite/gas/riscv/m-ext-64-noarch.d b/gas/testsuite/gas/riscv/m-ext-64-noarch.d > new file mode 100644 > index 00000000000..2d7031e5a35 > --- /dev/null > +++ b/gas/testsuite/gas/riscv/m-ext-64-noarch.d > @@ -0,0 +1,4 @@ > +#as: -march=rv64i -I$srcdir/$subdir -defsym XLEN=64 -defsym NOARCH=1 > +#source: m-ext.s > +#objdump: -d > +#error_output: m-ext-64-noarch.l > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-noarch-64.l b/gas/testsuite/gas/riscv/m-ext-64-noarch.l > similarity index 100% > rename from gas/testsuite/gas/riscv/m-ext-fail-noarch-64.l > rename to gas/testsuite/gas/riscv/m-ext-64-noarch.l > diff --git a/gas/testsuite/gas/riscv/m-ext-64.d b/gas/testsuite/gas/riscv/m-ext-64.d > index 05099b14e9e..ad086829ae5 100644 > --- a/gas/testsuite/gas/riscv/m-ext-64.d > +++ b/gas/testsuite/gas/riscv/m-ext-64.d > @@ -1,4 +1,4 @@ > -#as: -march=rv64im -defsym rv64=1 > +#as: -march=rv64i -I$srcdir/$subdir -defsym XLEN=64 > #source: m-ext.s > #objdump: -d > > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-noarch-64.d b/gas/testsuite/gas/riscv/m-ext-fail-noarch-64.d > deleted file mode 100644 > index 3c4fc9a0a50..00000000000 > --- a/gas/testsuite/gas/riscv/m-ext-fail-noarch-64.d > +++ /dev/null > @@ -1,4 +0,0 @@ > -#as: -march=rv64i -defsym rv64=1 > -#source: m-ext.s > -#objdump: -d > -#error_output: m-ext-fail-noarch-64.l > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-xlen-32.d b/gas/testsuite/gas/riscv/m-ext-fail-xlen-32.d > deleted file mode 100644 > index 54f8b8225dc..00000000000 > --- a/gas/testsuite/gas/riscv/m-ext-fail-xlen-32.d > +++ /dev/null > @@ -1,4 +0,0 @@ > -#as: -march=rv32im -defsym rv64=1 > -#source: m-ext.s > -#objdump: -d > -#error_output: m-ext-fail-xlen-32.l > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-xlen-32.l b/gas/testsuite/gas/riscv/m-ext-fail-xlen-32.l > deleted file mode 100644 > index d65ca4980e6..00000000000 > --- a/gas/testsuite/gas/riscv/m-ext-fail-xlen-32.l > +++ /dev/null > @@ -1,6 +0,0 @@ > -.*Assembler messages: > -.*: Error: unrecognized opcode `mulw a0,a1,a2' > -.*: Error: unrecognized opcode `divw a0,a1,a2' > -.*: Error: unrecognized opcode `divuw a0,a1,a2' > -.*: Error: unrecognized opcode `remw a0,a1,a2' > -.*: Error: unrecognized opcode `remuw a0,a1,a2' > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-zmmul-32.d b/gas/testsuite/gas/riscv/m-ext-fail-zmmul-32.d > deleted file mode 100644 > index c164fa96f8f..00000000000 > --- a/gas/testsuite/gas/riscv/m-ext-fail-zmmul-32.d > +++ /dev/null > @@ -1,4 +0,0 @@ > -#as: -march=rv32i_zmmul > -#source: m-ext.s > -#objdump: -d > -#error_output: m-ext-fail-zmmul-32.l > diff --git a/gas/testsuite/gas/riscv/m-ext-fail-zmmul-64.d b/gas/testsuite/gas/riscv/m-ext-fail-zmmul-64.d > deleted file mode 100644 > index f736d9c66c6..00000000000 > --- a/gas/testsuite/gas/riscv/m-ext-fail-zmmul-64.d > +++ /dev/null > @@ -1,4 +0,0 @@ > -#as: -march=rv64i_zmmul -defsym rv64=1 > -#source: m-ext.s > -#objdump: -d > -#error_output: m-ext-fail-zmmul-64.l > diff --git a/gas/testsuite/gas/riscv/m-ext.s b/gas/testsuite/gas/riscv/m-ext.s > index 68baf2ab9c0..8d599f20aef 100644 > --- a/gas/testsuite/gas/riscv/m-ext.s > +++ b/gas/testsuite/gas/riscv/m-ext.s > @@ -1,21 +1,26 @@ > +.include "testutils.inc" > + > target: > + SET_ARCH_START +zmmul Use .option arch/push/pop to enable the zmmul. > mul a0, a1, a2 > mulh a0, a1, a2 > mulhsu a0, a1, a2 > mulhu a0, a1, a2 > -.ifndef zmmul > + SET_ARCH_START +m Likewise, but disable the zmmul and enable m. > div a0, a1, a2 > divu a0, a1, a2 > rem a0, a1, a2 > remu a0, a1, a2 > -.endif > - > -.ifdef rv64 > + SET_ARCH_END > + SET_ARCH_END > +.if XLEN_GE_64 Use .option arch, rv64xxx. > + SET_ARCH_START +zmmul > mulw a0, a1, a2 > -.ifndef zmmul > + SET_ARCH_START +m > divw a0, a1, a2 > divuw a0, a1, a2 > remw a0, a1, a2 > remuw a0, a1, a2 > -.endif > + SET_ARCH_END > + SET_ARCH_END > .endif > diff --git a/gas/testsuite/gas/riscv/zmmul-32.d b/gas/testsuite/gas/riscv/zmmul-32.d > deleted file mode 100644 > index c9cf56ab33f..00000000000 > --- a/gas/testsuite/gas/riscv/zmmul-32.d > +++ /dev/null > @@ -1,14 +0,0 @@ > -#as: -march=rv32im -defsym zmmul=1 > -#source: m-ext.s > -#objdump: -d > - > -.*:[ ]+file format .* > - > - > -Disassembly of section .text: > - > -0+000 : > -[ ]+[0-9a-f]+:[ ]+02c58533[ ]+mul[ ]+a0,a1,a2 > -[ ]+[0-9a-f]+:[ ]+02c59533[ ]+mulh[ ]+a0,a1,a2 > -[ ]+[0-9a-f]+:[ ]+02c5a533[ ]+mulhsu[ ]+a0,a1,a2 > -[ ]+[0-9a-f]+:[ ]+02c5b533[ ]+mulhu[ ]+a0,a1,a2 > diff --git a/gas/testsuite/gas/riscv/zmmul-64.d b/gas/testsuite/gas/riscv/zmmul-64.d > deleted file mode 100644 > index 67ef3604755..00000000000 > --- a/gas/testsuite/gas/riscv/zmmul-64.d > +++ /dev/null > @@ -1,15 +0,0 @@ > -#as: -march=rv64im -defsym zmmul=1 -defsym rv64=1 > -#source: m-ext.s > -#objdump: -d > - > -.*:[ ]+file format .* > - > - > -Disassembly of section .text: > - > -0+000 : > -[ ]+[0-9a-f]+:[ ]+02c58533[ ]+mul[ ]+a0,a1,a2 > -[ ]+[0-9a-f]+:[ ]+02c59533[ ]+mulh[ ]+a0,a1,a2 > -[ ]+[0-9a-f]+:[ ]+02c5a533[ ]+mulhsu[ ]+a0,a1,a2 > -[ ]+[0-9a-f]+:[ ]+02c5b533[ ]+mulhu[ ]+a0,a1,a2 > -[ ]+[0-9a-f]+:[ ]+02c5853b[ ]+mulw[ ]+a0,a1,a2 Therefore, we don't need zmmul-32 and zmmul-64, and defines those special symbols by -defsym, just need one file includes multiple mapping symbols to make instructions dumped right. Thanks Nelson > -- > 2.37.2 >