From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd2f.google.com (mail-io1-xd2f.google.com [IPv6:2607:f8b0:4864:20::d2f]) by sourceware.org (Postfix) with ESMTPS id E22C03858D1E for ; Fri, 10 Nov 2023 20:24:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E22C03858D1E 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 E22C03858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d2f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699647888; cv=none; b=IRZhtVpbRY7Di3pC9afGXeqmmu0koGI85nn+yDxwEJf2AbHRDnfOKAG/m6hYSScX1iRsga9ZogQ64PpniBXEp/sGO1v+H8RnOcle2iPU7RqEhIErY8haaDMyvzDxcMNvZP6P/QogCnX3tHpF4TG86OEWEfq6ERmeElvTScrwisQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699647888; c=relaxed/simple; bh=bMBSJH+rCb0om/iRoL/JXfhljp+IiP7IStYMlphtvpY=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=NsZ9LwnEOHthLFr58ibHKKK4NFlyqotiwqnil+iCTsijVBKh/KHObmnCJNZAWjvKGr6Kja2YyBwYfuXq3o4qISoVGCPofc5NJjll7RWjwHWznG+GbYtaLRvrqgqBkivOe5n2nIcDwmnkUyHtEzbkV8jMQ1lx9fKORuoXSIwSW/8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd2f.google.com with SMTP id ca18e2360f4ac-7a98fdeaac7so96619939f.1 for ; Fri, 10 Nov 2023 12:24:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699647886; x=1700252686; 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=Qn26SHtTP8PnDpNtQELDfBoRnJ9cbbapVBLA/JsRxC4=; b=Udux7K8G5sG3wj//SI2xDsA75bSfS/FFiAbs7JsLDKqtQsmJf3Ip9IGH19jwuvWUKZ ABSBSrkFuNuVgv3/z6nmZIxFZlbAsqdWUssqwSX+0QQHJiy3zC6v69LnuHUkUeoMag44 7l3jPUnj6ymaCSp+ZVZ31bGffrGWIacyFECVjlcg1iO53ayWZoeqHRa79fETHhOkeA2L Hcwed3v2yIA9niiiD0SmAZoDUEdaMPwL4/I9TP68V5u56LX0MfRvn3A8pCPPhoM61BWd UkdIDdkrPzX0h+1hLwaFwoyrKFjPKA1j6wXZ3Ojl4ATIpSFI0X0nqUQ9LWkPBCqLui1v TXWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699647886; x=1700252686; 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=Qn26SHtTP8PnDpNtQELDfBoRnJ9cbbapVBLA/JsRxC4=; b=X7TeR6UoxGt5f7cVhFExVckbZxewdCxUd9EbCP3WTgPZqXmGH4CUKcDqiJJu8sC3eV KUghRAtW/UyMdQtE2xBCVmUU73kJHApyf+2cLuihw2ZyakRYsCcScIIA86CDWGbGbkTc OciHR71uz/E/d8t/o7sXzIWiVNPO8ZXb1txEGV7aVd02IHrbc8bY7qyNhMNidHZs13Bz YD76yM0aKNsWLjOdS3ednPTi+SV41+m8fWZBkDVUH/zNxWd8r1I31tscjb8Dw5P3bFY3 2jXjveRKIz+MsOmdSAhZIMGur4toxTfmNXyapQnAVNBV72oLXhr5kepnQWeSz6BWXWhG w0EA== X-Gm-Message-State: AOJu0Ywkj3Jd1be9O8SlPhj88zh8dRoKkgrMPTm3R7QpwGZuul8LeUAc j3xobx8zHRuFlMC8zIAsZxokyTEfxLppqw== X-Google-Smtp-Source: AGHT+IGYkjEGfwyvTn81nEyiAbetqWN9CG7Lt+ABlqW6C1O0kYhfPmQpKhtK8G7Bv65xLwlAcPOVbA== X-Received: by 2002:a05:6602:164a:b0:7a9:63ff:29ff with SMTP id y10-20020a056602164a00b007a963ff29ffmr544905iow.7.1699647886034; Fri, 10 Nov 2023 12:24:46 -0800 (PST) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id m22-20020a0566022e9600b007a669ac1ef4sm23574iow.40.2023.11.10.12.24.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 Nov 2023 12:24:45 -0800 (PST) Message-ID: <7b69d803-f18b-4bc1-add9-d2bd9bed6c48@gmail.com> Date: Fri, 10 Nov 2023 13:24:44 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/3] RISC-V: Add support for XCVbi extension in CV32E40P Content-Language: en-US To: Mary Bennett , gcc-patches@gcc.gnu.org References: <20231108110914.2710021-1-mary.bennett@embecosm.com> <20231108110914.2710021-4-mary.bennett@embecosm.com> From: Jeff Law In-Reply-To: <20231108110914.2710021-4-mary.bennett@embecosm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-8.3 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 11/8/23 04:09, 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: Change pattern priority so corev.md > patterns run before riscv.md patterns. > * 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. > --- > diff --git a/gcc/config/riscv/corev.md b/gcc/config/riscv/corev.md > index 0109e1836cf..7d7b952d817 100644 > --- a/gcc/config/riscv/corev.md > +++ b/gcc/config/riscv/corev.md > @@ -706,3 +706,17 @@ > > [(set_attr "type" "load") > (set_attr "mode" "SI")]) > + > +;; XCVBI Builtins > +(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")]) Note that technically you could use "i" or "n" for the constraint of operand 3. This works because the predicate has priority and it only allows -16..15. > diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md > index ae2217d0907..168c8665a7a 100644 > --- a/gcc/config/riscv/riscv.md > +++ b/gcc/config/riscv/riscv.md > @@ -579,6 +579,14 @@ > (define_asm_attributes > [(set_attr "type" "multi")]) > > +;; .............................. > +;; > +;; Machine Description Patterns > +;; > +;; .............................. > + > +(include "corev.md") I would put a comment here indicating why a subtarget might want to include its patterns before the standard patterns in riscv.md. OK with the comment added. Your decision on whether or not to drop the CV_bi_sign5 constraint and replace it with "n". Jeff