From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com [IPv6:2607:f8b0:4864:20::102e]) by sourceware.org (Postfix) with ESMTPS id 61B3A3858D28 for ; Mon, 28 Aug 2023 21:21:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 61B3A3858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-26fc5a218daso1947124a91.1 for ; Mon, 28 Aug 2023 14:21:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693257661; x=1693862461; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=e6i0cc6lr55KGeZSWh48hfLeF1eTATUQZBk90vDRyQ0=; b=DXVFpvkWBoWaU+oeTK83JUu62L81tlpXUlCnKntVvs32iQ2hvGOF2D3Hnw3xQgH7Ee K6DvK11+JLQrCmgocB9ylbXR5+0RokXQiiJBeCLfXBEAkiImdVjzceYCqu96ivNTGZC1 AiFjJNZwG/LHyp4xOLxU4XjJG7q9afUyd5IVpOR5uxfhmC1hibr4oIOpJjmp6uGDgtlI +/lW2pe7kSsoSceEWj9FJBCSpN9UUxeAkwHwFxp8hErhE1cI63c37cEj2hvLavm7D5r0 kp9omAJWgQV25e4Zk2i7ozI0bcp/FbiKmz4HK45JjTy+z1WQO+fUCWcxvDuV14edkFrS 02OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693257661; x=1693862461; h=content-transfer-encoding:in-reply-to:from:references:cc: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=e6i0cc6lr55KGeZSWh48hfLeF1eTATUQZBk90vDRyQ0=; b=ZqBmUaRtTIue7GF1LMHLKoVtFR2F17Wb2Cj9KnLgblZbm95tMOnZIxgjxb7D42jgU4 BJZqeHTWPtpFKTjvmDYsHOLgEGNOau75lDINSsDy1szpz1ZFYT8n7fUPiknu5QQHn7i8 tKv4fUkgxT2WT8UHFX0APTjsibdRTZdLTxj3Kpq7N1S78TmL4kq86qjgNz0HGHeJSWKN LxJleDuY1PZGE6aPI028zr6I7EXur/HYcb100TIH2dFLksheytGEuXhLlcwaHLc/RIb5 NFsbBcsXPEtFvpX/Dnz1T40pgFFH7rP2qN+b09JRt8WZk1a79bh8WZt+5ken1iZfFaap d2Sg== X-Gm-Message-State: AOJu0Yy9daL82SjoZ8dtgj/TXO39ksS5lDA8X6g5yIxlyqBetCRPoMZl 3b7OgeA79ihwZdBJu2Q2+XJsTLnJcUQ= X-Google-Smtp-Source: AGHT+IEIrmM4hBOeQ+/+Y8RtXqb6RjOj+dBS5r58nF4wM6SxW+7kSHY0hOZa2KK/2EdgY2uqH/CrDg== X-Received: by 2002:a17:90b:4b4f:b0:26b:3625:d1a2 with SMTP id mi15-20020a17090b4b4f00b0026b3625d1a2mr20818425pjb.41.1693257661231; Mon, 28 Aug 2023 14:21:01 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id t16-20020a17090b019000b002635db431a0sm7499571pjs.45.2023.08.28.14.21.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Aug 2023 14:21:00 -0700 (PDT) Message-ID: <5b7219c9-76d6-574b-a7e4-2e0992a56198@gmail.com> Date: Mon, 28 Aug 2023 15:20:59 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH 1/1] RISC-V: Make "prefetch.i" built-in usable Content-Language: en-US To: Tsukasa OI , Kito Cheng , Palmer Dabbelt , Andrew Waterman , Jim Wilson Cc: gcc-patches@gcc.gnu.org References: <97c0d824fa5aeaee52a825da7f7a17ae8616c5ab.1691636916.git.research_trasio@irq.a4lg.com> From: Jeff Law In-Reply-To: <97c0d824fa5aeaee52a825da7f7a17ae8616c5ab.1691636916.git.research_trasio@irq.a4lg.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,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 8/9/23 21:10, Tsukasa OI via Gcc-patches wrote: > From: Tsukasa OI > > The "__builtin_riscv_zicbop_cbo_prefetchi" built-in function was terribly > broken so that practically unusable. It emitted "prefetch.i" but with no > meaningful arguments. > > Though incompatible, this commit completely changes the function prototype > of this built-in and makes it usable. To minimize the functionality issues, > it renames the built-in to "__builtin_riscv_zicbop_prefetch_i". > > gcc/ChangeLog: > > * config/riscv/riscv-cmo.def: Fix function prototype. > * config/riscv/riscv.md (riscv_prefetchi_): Fix instruction > prototype. Remove possible prefectch type argument > * doc/extend.texi: Document __builtin_riscv_zicbop_prefetch_i. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/cmo-zicbop-1.c: Reflect new built-in prototype. > * gcc.target/riscv/cmo-zicbop-2.c: Likewise. > diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md > index 688fd697255b..5658c7b7e113 100644 > --- a/gcc/config/riscv/riscv.md > +++ b/gcc/config/riscv/riscv.md > @@ -3273,9 +3273,8 @@ > }) > > (define_insn "riscv_prefetchi_" > - [(unspec_volatile:X [(match_operand:X 0 "address_operand" "r") > - (match_operand:X 1 "imm5_operand" "i")] > - UNSPECV_PREI)] > + [(unspec_volatile:X [(match_operand:X 0 "register_operand" "r")] > + UNSPECV_PREI)] > "TARGET_ZICBOP" > "prefetch.i\t%a0" > ) What I would suggest is making a new predicate that accepts either a register or a register+offset where the offset fits in a signed 12 bit immediate. Use that for operand 0's predicate and I think this will "just work" and cover all the cases supported by the prefetch.i instruction. Jeff