From patchwork Thu Aug 3 00:04:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 130226 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp807220vqx; Wed, 2 Aug 2023 17:07:44 -0700 (PDT) X-Google-Smtp-Source: APBJJlFjWoh/7sfe3C9nAbPgNMNoxEJn48xGBDw0ceFIIFmo6YAs4CC6Dvtw80l0772muljrwSsP X-Received: by 2002:a17:907:7711:b0:991:bf04:2047 with SMTP id kw17-20020a170907771100b00991bf042047mr6003362ejc.14.1691021264388; Wed, 02 Aug 2023 17:07:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691021264; cv=none; d=google.com; s=arc-20160816; b=EzckRq3yJOF7aJ74/L28orxw8dl7M8+JKonGUm8uqtpEo7H4TGDk+duEzZWGnzFPoI js9564q66vXf8+uo1dY1RnKQZHVqc8WvJVcIbtMM+a1KOG5LzVt135Tcp/v6eRbKFvDm OdRAI7W2C1YHVoIy0DiaSKBzrhZkoITkw2hfmiqle86M+EJwYBN8K3cJ2Evf4t+asia0 db8O8gEd/pfDmPPzX10ssH2n/rvettzIVEAsHOM5S6AT8v1zwV/p2Rnozppw5eCG+Gwb 0IInPchG0KLF5oyU+BgQS0+TZrZVGTZ3uVb8BE5afdCHtrZpgJGKA3pKZ+gVHtkAt61U yxIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to: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:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=ytzT+mX+Mzu7i8LT5ZOw26NaZmw+oX0yegYWYA7ME8g=; fh=oLBbkpKGrMjsAiDUocfN7mW0LEnMJsqDdFE8uCs7/vo=; b=viMP0ImYbIcfd0BwmOXbrkEvCHNrTPNKqYFOHudkkLGZfQdnLGsmTAZpxkWWRd+YjC aqAHxMSnit/aa83AZIb9Mn44nRQWJO+/fwTSS/mRLxtcuqwInPJEwxljdgJ413jGDE86 4MmIRBYwE9/QCvUule0LggOyZewYKCnrjtcBDZUdnyfHiDV7+acx0+M1kANUQF93c6t3 q9aHsaHsbv/qq9eSx271dhhzCG7wbb7GG2PTuG7pcPyivkFyOHPfnHYHmGG18h5rV4Up IfzDIlIVsYMNhbXq8lxTZqL8V11lqVavcmNddGz0PBKnFMKiF6ldOLKz6KAYs10vItbY 4owA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=doGdgSZT; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c 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 (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id u27-20020a1709063b9b00b00992a096678fsi10991810ejf.813.2023.08.02.17.07.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Aug 2023 17:07:44 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=doGdgSZT; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c 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 C96AC3857355 for ; Thu, 3 Aug 2023 00:06:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C96AC3857355 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1691021183; bh=ytzT+mX+Mzu7i8LT5ZOw26NaZmw+oX0yegYWYA7ME8g=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=doGdgSZTervpbnPDt9+BANe0JIZqsCWrpK5/UxtTubGA9tCC6QkBKXnmuQAsn5ZfV 0qX3x+xh/ubkIsop+W9B7ZZU9XcYufhyrEsRjSA/5Ii5+ATESwUKdgenmuxfZM79ID S5PA+Nk1sARMxoRulvNfn8P8HQyts6X7FuI24AYs= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id 6CEEE3857702 for ; Thu, 3 Aug 2023 00:05:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6CEEE3857702 Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id BA2FC300089; Thu, 3 Aug 2023 00:05:42 +0000 (UTC) To: Tsukasa OI , Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu , Kito Cheng Cc: binutils@sourceware.org Subject: [REVIEW ONLY 4/4] RISC-V: Tentative ".bfloat16" assembly support Date: Thu, 3 Aug 2023 00:04:56 +0000 Message-ID: <7fbfd7ca7fdc34afc0111af0f7beb7c69839fc04.1691021079.git.research_trasio@irq.a4lg.com> In-Reply-To: References: Mime-Version: 1.0 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, KAM_MANYTO, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: 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 Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773164312918050817 X-GMAIL-MSGID: 1773164312918050817 From: Tsukasa OI This commit adds an assembler directive ".bfloat16" to help BFloat16 extensions ('Zfbfmin', 'Zvfbfmin' and 'Zvfbfwma') users. gas/ChangeLog: * config/tc-riscv.c (FLT_CHARS): Add BFloat16 'b' to supported floating point formats. (riscv_pseudo_table) Add ".bfloat16" directive. * testsuite/gas/riscv/bfloat16.s: Copied from testsuite/gas/aarch64/bfloat16-directive.s. * testsuite/gas/riscv/bfloat16-be.d: New test ported from testsuite/gas/aarch64/bfloat16-directive-be.d and float16-be.d. * testsuite/gas/riscv/bfloat16-le.d: New test ported from testsuite/gas/aarch64/bfloat16-directive-le.d and float16-le.d. --- gas/config/tc-riscv.c | 3 ++- gas/testsuite/gas/riscv/bfloat16-be.d | 10 ++++++++++ gas/testsuite/gas/riscv/bfloat16-le.d | 10 ++++++++++ gas/testsuite/gas/riscv/bfloat16.s | 19 +++++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 gas/testsuite/gas/riscv/bfloat16-be.d create mode 100644 gas/testsuite/gas/riscv/bfloat16-le.d create mode 100644 gas/testsuite/gas/riscv/bfloat16.s diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index aaf8b9be64fd..9f15233c7b99 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -437,7 +437,7 @@ const char EXP_CHARS[] = "eE"; /* Chars that mean this number is a floating point constant. As in 0f12.456 or 0d1.2345e12. */ -const char FLT_CHARS[] = "rRsSfFdDxXpPhH"; +const char FLT_CHARS[] = "rRsSfFdDxXpPhHb"; /* Indicate we are already assemble any instructions or not. */ static bool start_assemble = false; @@ -5178,6 +5178,7 @@ static const pseudo_typeS riscv_pseudo_table[] = {"attribute", s_riscv_attribute, 0}, {"variant_cc", s_variant_cc, 0}, {"float16", float_cons, 'h'}, + {"bfloat16", float_cons, 'b'}, { NULL, NULL, 0 }, }; diff --git a/gas/testsuite/gas/riscv/bfloat16-be.d b/gas/testsuite/gas/riscv/bfloat16-be.d new file mode 100644 index 000000000000..8775ab035f6c --- /dev/null +++ b/gas/testsuite/gas/riscv/bfloat16-be.d @@ -0,0 +1,10 @@ +# source: bfloat16.s +# objdump: -sj .data +# as: -mbig-endian + +.*: +file format .* + +Contents of section \.data: + 0000 41403dfc 000042f7 8000c2f7 7fff7f80 .* + 0010 ff807f7f ff7f0080 80800001 8001007f .* + 0020 807f3f80 bf804000 c000.* diff --git a/gas/testsuite/gas/riscv/bfloat16-le.d b/gas/testsuite/gas/riscv/bfloat16-le.d new file mode 100644 index 000000000000..4de8b2fed68b --- /dev/null +++ b/gas/testsuite/gas/riscv/bfloat16-le.d @@ -0,0 +1,10 @@ +# source: bfloat16.s +# objdump: -sj .data +# as: -mlittle-endian + +.*: +file format .* + +Contents of section \.data: + 0000 4041fc3d 0000f742 0080f7c2 ff7f807f .* + 0010 80ff7f7f 7fff8000 80800100 01807f00 .* + 0020 7f80803f 80bf0040 00c0.* diff --git a/gas/testsuite/gas/riscv/bfloat16.s b/gas/testsuite/gas/riscv/bfloat16.s new file mode 100644 index 000000000000..66e17e4fc7da --- /dev/null +++ b/gas/testsuite/gas/riscv/bfloat16.s @@ -0,0 +1,19 @@ +.data + .bfloat16 12.0 + .bfloat16 0.123 + .bfloat16 +0.0 + .bfloat16 123.4 + .bfloat16 -0.0 + .bfloat16 -123.4 + .bfloat16 NaN + .bfloat16 Inf + .bfloat16 -Inf + .bfloat16 3.390e+38 + .bfloat16 -3.390e+38 + .bfloat16 1.175e-38 + .bfloat16 -1.175e-38 + .bfloat16 9.194e-41 + .bfloat16 -9.194e-41 + .bfloat16 1.167e-38 + .bfloat16 -1.167e-38 + .bfloat16 1.0, -1, 2.0, -2