From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) by sourceware.org (Postfix) with ESMTPS id 52DE63858C52 for ; Fri, 15 Dec 2023 23:22:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 52DE63858C52 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 52DE63858C52 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d2d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702682524; cv=none; b=TuJ2GRTz1+Cq/RBeGdlK+jrg9WUySEgI6u4JIbMdzTmMY0prepU+FIKWENbmmmM/GJkrmydA0QHMWOyzLnUpHSc9D9+XCLVBXPHF1ePFlbSnvbUsprt97khuWcLncg3RiTWEVhugclPLKNQmoWj3rHQxXGA1JVI5I0lIonXa/3M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702682524; c=relaxed/simple; bh=Cc/P3e67UFdBJInrx5IAYO+7vpa7OG8rJWiIs5pUt7U=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=PwGM7yEt7Rr3wvn+SZRy6DC+8I29hOyNWgxiwWuysgChd7CZnNupTh4kPUj8098QNDo98wMoCNhg6Qpf/2wf18prT0lzSePn2OvirIp17z5WcUTJPER3NU0534uQxtZAtPqe3EUrR6rDo7MmvQl6ixDWoBTgMe0F7FUfGGP80uY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd2d.google.com with SMTP id ca18e2360f4ac-7b798e6f702so47653239f.2 for ; Fri, 15 Dec 2023 15:22:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702682521; x=1703287321; darn=gcc.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=FiUosOOdC+zbfhpydIc6X7kxR4ITa/zEj6fYfo8PBlA=; b=NPaSPCmhgRFj8a1tlLf9KxwPjfla3leh+rwxMSs/PtcKuoRmPzB78zjrlZIigSzjuX cAx5vb2eC46FcFBwnbuu4MqLlSofOMeaXA5AGshckH+2a16DUstxujuJl7u145RKITgs ISjlOp7sF96EOP7xAPvcNrrrd+sqTXBwAD/gzSSWwJGijjR4xIaUb/vA3IVTIJwmPIAt Xo/Gz6kk8TfwkFM9AcuBAOPEURzTqMCQhzqJwxMLHV6S7D/d4qGzV1q/Yt/vsBIIrj2I 4p/w3elScke9Gii9LtbOWPE1RTuLDGx4VMbxtBKowNAHk/knRJnqZ3Nu9OwZkPbBrQx/ UdhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702682521; x=1703287321; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FiUosOOdC+zbfhpydIc6X7kxR4ITa/zEj6fYfo8PBlA=; b=JjAvAjNgLm6G/18bfdIM33ZhgVnY40dHXfPt1MR/OqIAt6odelrG5hmS7rDitvcaAy HIXeNXyCcniFlpFLoyTKrKVW/fcmdR6dhhqUOhZUzx3dbskB8vbeSqgjA3Gug4+7L9TB wzi3+gz65FjBAdQTqv3jRXJOInI4xXO+ptgjIhebSjPMH++aCnnXmOSM4G6DNKYeWDeV 8Rq55Z84XXBsZUdAnXRK9ER6nizzxfhmp7UgWp0MQeXCZ+UpmziVAz0rVghoBYq+v/Mq nRweHCYoaYBiMMeCCtkyStDV2nHqmf0lyMQUY5Iw1k7Wtqz+dPpF5YQ/iIpfS7xvY37N jgdQ== X-Gm-Message-State: AOJu0YwNYTv2fOb38SAGowwy94tOPDRzDQngoB1CzlUIGEzSouDAxnnf 8NOLBKOzx5p+/mBbO9773lOuj8DTYX8= X-Google-Smtp-Source: AGHT+IFsrDhlqLBGj8mze97DEhCch5P1GAsps/5NQl7fSeSGUwq9REOmyNFO0K81EsVjnUapLGMobA== X-Received: by 2002:a05:6602:17cf:b0:7b7:b6b6:28da with SMTP id z15-20020a05660217cf00b007b7b6b628damr236171iox.10.1702682521277; Fri, 15 Dec 2023 15:22:01 -0800 (PST) Received: from [172.31.0.109] ([136.36.72.243]) by smtp.gmail.com with ESMTPSA id f36-20020a05663832a400b004691dc8a3d5sm4201505jav.58.2023.12.15.15.22.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 15 Dec 2023 15:22:00 -0800 (PST) Message-ID: Date: Fri, 15 Dec 2023 16:21:59 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 3/3] RISC-V: Add support for XCVbi extension in CV32E40P Content-Language: en-US To: Mary Bennett , gcc-patches@gcc.gnu.org References: <20231128131615.3986922-1-mary.bennett@embecosm.com> <20231212193253.220195-1-mary.bennett@embecosm.com> <20231212193253.220195-4-mary.bennett@embecosm.com> From: Jeff Law In-Reply-To: <20231212193253.220195-4-mary.bennett@embecosm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-8.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,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 List-Id: On 12/12/23 12:32, Mary Bennett wrote: > Spec: github.com/openhwgroup/core-v-sw/blob/master/specifications/corev-builtin-spec.md > > Contributors: > Mary Bennett > Nandni Jamnadas > Pietra Ferreira > Charlie Keaney > Jessica Mills > Craig Blackmore > Simon Cook > Jeremy Bennett > Helene Chelin > > gcc/ChangeLog: > * common/config/riscv/riscv-common.cc: Create XCVbi extension > support. > * config/riscv/riscv.opt: Likewise. > * config/riscv/corev.md: Implement cv_branch pattern > for cv.beqimm and cv.bneimm. > * config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V > branch instruction pattern. > * config/riscv/constraints.md: Implement constraints > cv_bi_s5 - signed 5-bit immediate. > * config/riscv/predicates.md: Implement predicate > const_int5s_operand - signed 5 bit immediate. > * doc/sourcebuild.texi: Add XCVbi documentation. > > gcc/testsuite/ChangeLog: > * gcc.target/riscv/cv-bi-beqimm-compile-1.c: New test. > * gcc.target/riscv/cv-bi-beqimm-compile-2.c: New test. > * gcc.target/riscv/cv-bi-bneimm-compile-1.c: New test. > * gcc.target/riscv/cv-bi-bneimm-compile-2.c: New test. > * lib/target-supports.exp: Add proc for XCVbi. > --- > gcc/common/config/riscv/riscv-common.cc | 2 + > gcc/config/riscv/constraints.md | 6 +++ > gcc/config/riscv/corev.md | 32 +++++++++++++ > gcc/config/riscv/predicates.md | 4 ++ > gcc/config/riscv/riscv.md | 2 +- > gcc/config/riscv/riscv.opt | 2 + > gcc/doc/sourcebuild.texi | 3 ++ > .../gcc.target/riscv/cv-bi-beqimm-compile-1.c | 17 +++++++ > .../gcc.target/riscv/cv-bi-beqimm-compile-2.c | 48 +++++++++++++++++++ > .../gcc.target/riscv/cv-bi-bneimm-compile-1.c | 17 +++++++ > .../gcc.target/riscv/cv-bi-bneimm-compile-2.c | 48 +++++++++++++++++++ > gcc/testsuite/lib/target-supports.exp | 13 +++++ > 12 files changed, 193 insertions(+), 1 deletion(-) > create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bi-beqimm-compile-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bi-beqimm-compile-2.c > create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bi-bneimm-compile-1.c > create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bi-bneimm-compile-2.c > > diff --git a/gcc/config/riscv/constraints.md b/gcc/config/riscv/constraints.md > index 2711efe68c5..718b4bd77df 100644 > --- a/gcc/config/riscv/constraints.md > +++ b/gcc/config/riscv/constraints.md > @@ -247,3 +247,9 @@ > (and (match_code "const_int") > (and (match_test "IN_RANGE (ival, 0, 1073741823)") > (match_test "exact_log2 (ival + 1) != -1")))) > + > +(define_constraint "CV_bi_sign5" > + "@internal > + A 5-bit signed immediate for CORE-V Immediate Branch." > + (and (match_code "const_int") > + (match_test "IN_RANGE (ival, -16, 15)"))) > diff --git a/gcc/config/riscv/corev.md b/gcc/config/riscv/corev.md > index 92bf0b5d6a6..92e30a8ae04 100644 > --- a/gcc/config/riscv/corev.md > +++ b/gcc/config/riscv/corev.md > @@ -706,3 +706,35 @@ > > [(set_attr "type" "load") > (set_attr "mode" "SI")]) > + > +;; XCVBI Instructions > +(define_insn "cv_branch" > + [(set (pc) > + (if_then_else > + (match_operator 1 "equality_operator" > + [(match_operand:X 2 "register_operand" "r") > + (match_operand:X 3 "const_int5s_operand" "CV_bi_sign5")]) > + (label_ref (match_operand 0 "" "")) > + (pc)))] > + "TARGET_XCVBI" > + "cv.b%C1imm\t%2,%3,%0" > + [(set_attr "type" "branch") > + (set_attr "mode" "none")]) So I think Kito wanted the name of this pattern to be prefixed with '*'. My question is how does that pattern deal with out of range branch targets? As Kito mentioned on the V3, you probably need to handle that. I think this suggestion from Kito was meant to be added to that pattern so that it works in a manner similar to the *branch pattern: > if (get_attr_length (insn) == 12) > return "cv.b%N1\t%2,%z3,1f; jump\t%l0,ra; 1:"; Jeff