From patchwork Thu Feb 1 08:42:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45955 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp128065pzb; Thu, 1 Feb 2024 00:43:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IHf66WQtd7G8TfH4Z+QV9TjTXrDSs0iQmAyMQFXAr63WMKsBroCNIoz69In7BZMnjEbT6gp X-Received: by 2002:a17:906:a847:b0:a36:695e:60e1 with SMTP id dx7-20020a170906a84700b00a36695e60e1mr3449285ejb.63.1706776985869; Thu, 01 Feb 2024 00:43:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706776985; cv=none; d=google.com; s=arc-20160816; b=VTrphzBvOWyj3Pcd3pGZvjrnUml5OZUaxFTYzF4bxsCtrhS6H6AGeYM8j9s8ghmS+5 wSekv/HdSEvd1b+h4+bVWund0GB6gCdYvxhNuitefJMHAXQW2eAZreLOQuIgZrtdSPFZ HS2zdZfGH9fFTzxtWxisJQ4D7usN7tSG6glmMW85eQb2GLsmnjY5bUQyPAfqaGK+z1Bk DNk6GXe7T6MZR2COio1Xsc9Lti5qw47OKQ7vr3qZFThRFZMl0Nm9enHDiAe5zgmlZsQW uMqY+cpfm387U6pQuyUJsSc1iRLv/uZmf4kvXWADccRtv5bmiPLY0PggdYj3jBK9DNvL 7ykA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to; bh=zlUC+tboGYS3lu98T3HZ5Ysd5XVC0u/b5ohIkQ4raHA=; fh=5kOgkaZwnc5DKlgAtoF4MMhgKqY5H5BxJSEjILmC/T8=; b=z3xw+/Bz3H7+3Lg0VJgginNpmvKn5Go8wII+NhGx6rBAmj5B52D23yxkBxZaj8ljmm 0mN4IkW6oC+UvueEGj2KCGGZJPiHxDfiEUsBV6YgiqANwE9nV0s5uWsmBl5RzrWs1wUP N2j3f48FKOI9e2P7I54Qvb59IQdMUpOxFI37UdeCij0Y5BQulEjb7rpexjlTeFAgYWV7 vFlrIPt430hubffUMuO5Iy+1DtreOw3jNp/4RBVoHM8LRM2uyFUGjQc3t5ONpHiLwLb2 +LPAZN6OMpwU3LeTPGzbZjtuCREBzYqFk64X0qbqcuYFuuknRcUAsB2iKMrCeUWt3DDv ONCA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=Q0HPdI2Y; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com X-Forwarded-Encrypted: i=0; AJvYcCVz8ghioLSJwtu7novA04K/idIgWPlJ1LrBPqo7ig7fomUhmOuQX0bDlsIX0sn8oVdo972NpzZ3J9RmgofTVPoTKNTcb2QuKsAzPbORTzkRDWPE7/BwTlpHc5fW4GPeWx1CFptIgoz0UyVF4Xa2rRJaFWYWbyy+A57pGA7gv7WoIIB7f5k+u46ep8mW6LdzhbAgRNoIk1L11ZqVIm9md/soII4UazoXeFzWv9CTCAzSz3h+fSVyDMY5LPUaejMNN4gPN7tqDIh0F3/mpJDBMVJs0ypuo0rojgyjlPxVP3vXm7MAg9gca/7RBYAf5QI6h/ogXUxeZ/v0NcoADDgiy/7+HvmqhJuHetv4ZOBKuknEog66FBl0Z3rCryGJ65sh9HCPx1/rMFFZi+4oL6B4V6xNYdFo9qBvzUKwOWiUCCk/bvlmcusGAsf6PqENjm7RBFUPFu549qw8aoxgbFqpLN8wuenGpPtnBqO6sAOC2L5fgAy7ufO9NXjXp8fl+03W1XPTbdehc/OGerxLppRW7deWI88qFb9UMH2mxshSM/hhVAwLdtXt9YfWvG/dP5DO7+dVMQg2qOUqD3QiA/qq4yKYzLFQ/4LyR0oqyjehoCKNlsjEXEfg2AXsJb0xOfOKWUZJaUYrhVaqCPK37l5pmWFdZnyabHxQBdr7pe6r8N7rEvTc293guDf4DdCh/2MoXSHNtXkbOVy6kEhMfpVs1NhY52RHd1SsJocVqiynrq5pJ+Qb8/eufpSCY/2QSMk9R8wRwmh3lwUIRKYtjOTAzmj0rNlIJfVoGWLtymn6tG9RJyMN0nyy8VQHU9luByY2azc6xw4N1rGoU/USAuSj/vSR4azb90GXe/U+GV9NaqVU8RsND+YKM5cyy/OmHVPn0xsbv2e71n0cmKKPeYo2/BNUSESejN8s8MVmfqIl+qEsS7FOA7s61MCz13rBywjAuVq2jA G48yfGu0tXag6PIvX7FDF0nihFz//xdLMVkrC/uYO4Bcf7xodcGRgoiQpZO52Lk9jZpup4Kzjr7rzhmSr9Rb/aQ7q4Ggyl+7lpK5LsNAK05A+yjsGfRQyNlTGkF66jAECAsXKjot1OU9uTAT7xxcw5/O5aWcD2QYkbrIfYB4eLdGtQKXuJbPPIePnsx8rqiFs6q7ynNDId4wXcdfuZH3k2Nwvz7EYdCrgkRz+nPPRmVjspsZHWvVwReYeeYSPmTHAhD4YAnhIKCrAORWhIwPPDO/DGJfLicsESvsxD3gH3DiP37PlPX6eIBbb0Z2Z8DFyEChdoYJvMhsax9LvEwUZeTxu5rF9cFJZMQTCQWbVjJb8023hoUD1qL5p2XBFCzqpZy/Y/rO6X0hmoNgbw7znPAcBDZ4b0u6qn85Rnl+scSeWWEIrlFMcGp7I9bK8oyoZ/tJ0UzVvgx0Tp2khLZFVV0t1yYgHyYxAX2/xajHryl3H7TjecC3Io3uFCeei3sPfteIgSDi3NdA+hFy/ncARon7MbGupOQ0Pr4IglaJSpNg/VWJ8SdDvOjNIGj/+l4HylTgtngTI1Ul7YQH6ZMuYJA1avaGGsYbWPbBu+YFzR15YGLr4LN9DG/vo+qfkz+G0nlr9hwvbfSlkErw== Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l3-20020a170906644300b00a31914f5527si6513188ejn.714.2024.02.01.00.43.05; Thu, 01 Feb 2024 00:43:05 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=Q0HPdI2Y; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7A86668C69B; Thu, 1 Feb 2024 10:43:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3924768C69B for ; Thu, 1 Feb 2024 10:42:56 +0200 (EET) Received: by mail-qk1-f180.google.com with SMTP id af79cd13be357-78541a1c5b0so63948885a.1 for ; Thu, 01 Feb 2024 00:42:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706776974; x=1707381774; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=mKsKI7yOk042dW2pLnogX6QxMCh/sUW3exnvVqogscM=; b=Q0HPdI2YWe8qnSTVnbKbK7NOFGrjQ3meWk2LhCMLJVlLVNKP5g1IvnO6oXrFBizg9O lTKOuAV8H5uvpoYpOb6eBjGOTu6oGG9WFCH/iRys343iYUkjMi3Jwf4OJSrMXtHYCti1 7JsYIc0TZUzJy/7v07++fbodnVRWrF0wTqMA3LtrIwV7w+BLNh+a/GJpVwJaPeNr94n3 CY3q395L3kxrsGxwOcmwxSG2HAyGWDqk+3khyzimo0Z95tb9giSYFMGvOkNcwJwb8499 qfoMY1P+3V7y76dYZxR6CP/aJK9mjN/FNooY8VXPkI47n87+DA5VuaW+OFqjoJ8AXyCT baoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706776974; x=1707381774; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=mKsKI7yOk042dW2pLnogX6QxMCh/sUW3exnvVqogscM=; b=mUC1JJMgW3ZXV6BZSeqs4IuXv033rVFc2BeLtO5UsxDRHmjXr8ObHdw6HXlwYoLJuZ S9vrAHeZw9IjNxAs01+2cEhlXfkKAI9Ex0zGYdfDUeK0+ZmU2haS4IgB17nrfCwYaO6v Wc4tdDWiSdLLQMhf8TR80o8inhN2SdMDt3r+GRAHJPchYoMGblkPLh+ApgVUOXCVEips WWCw5OlM+Ke1IVOIHZU3KdvLhQgZKEWy+0gdKx8FR02tR7J/JOqzaDXI40veHx6xou8p h7B92s4O7+2mP7aJhkZFNYhrjE5e5+wMlIVF3gEM+wiYy3zqThUUh1Fl8JP8dcrWCMUF 3gsg== X-Gm-Message-State: AOJu0YyYVTjThn7Y39HXSwHrJb6oC00ySdz1isPMpAdzC+qqshOIQ+Tr QV/UPVOnHNIycDnXs4pgP6om+97S2XKj2sIyILHUahO4AoRLoFKMIZrNJk9fgqqi44PEVk1l/Ul KKShAfUx4QFf861K9U3nvjJz4qivqnf1F X-Received: by 2002:ad4:5ca5:0:b0:67f:26c9:ffdb with SMTP id q5-20020ad45ca5000000b0067f26c9ffdbmr5286630qvh.22.1706776974288; Thu, 01 Feb 2024 00:42:54 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Thu, 1 Feb 2024 16:42:43 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 1/2] lavc/blockdsp: R-V V clear_block X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FHNdpUNilB8v From d545f5ccc1c5923cb38c25b18ca750ef0ee529f4 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Thu, 1 Feb 2024 15:12:49 +0800 Subject: [PATCH 1/2] lavc/blockdsp: R-V V clear_block C908: blockdsp.clear_block_c: 47.2 blockdsp.clear_block_rvv_i64: 28.5 --- libavcodec/blockdsp.c | 2 ++ libavcodec/blockdsp.h | 1 + libavcodec/riscv/Makefile | 2 ++ libavcodec/riscv/blockdsp_init.c | 39 ++++++++++++++++++++++++++++++++ libavcodec/riscv/blockdsp_rvv.S | 29 ++++++++++++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 libavcodec/riscv/blockdsp_init.c create mode 100644 libavcodec/riscv/blockdsp_rvv.S diff --git a/libavcodec/blockdsp.c b/libavcodec/blockdsp.c index 98f06c5d16..79a8814262 100644 --- a/libavcodec/blockdsp.c +++ b/libavcodec/blockdsp.c @@ -69,6 +69,8 @@ av_cold void ff_blockdsp_init(BlockDSPContext *c) ff_blockdsp_init_arm(c); #elif ARCH_PPC ff_blockdsp_init_ppc(c); +#elif ARCH_RISCV + ff_blockdsp_init_riscv(c); #elif ARCH_X86 ff_blockdsp_init_x86(c); #elif ARCH_MIPS diff --git a/libavcodec/blockdsp.h b/libavcodec/blockdsp.h index d853adada2..6d751d797b 100644 --- a/libavcodec/blockdsp.h +++ b/libavcodec/blockdsp.h @@ -41,6 +41,7 @@ void ff_blockdsp_init(BlockDSPContext *c); void ff_blockdsp_init_alpha(BlockDSPContext *c); void ff_blockdsp_init_arm(BlockDSPContext *c); void ff_blockdsp_init_ppc(BlockDSPContext *c); +void ff_blockdsp_init_riscv(BlockDSPContext *c); void ff_blockdsp_init_x86(BlockDSPContext *c); void ff_blockdsp_init_mips(BlockDSPContext *c); diff --git a/libavcodec/riscv/Makefile b/libavcodec/riscv/Makefile index ffe6631cf2..579a716487 100644 --- a/libavcodec/riscv/Makefile +++ b/libavcodec/riscv/Makefile @@ -10,6 +10,8 @@ RVV-OBJS-$(CONFIG_ALAC_DECODER) += riscv/alacdsp_rvv.o OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_init.o RV-OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_rvf.o RVV-OBJS-$(CONFIG_AUDIODSP) += riscv/audiodsp_rvv.o +OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_init.o +RVV-OBJS-$(CONFIG_BLOCKDSP) += riscv/blockdsp_rvv.o OBJS-$(CONFIG_BSWAPDSP) += riscv/bswapdsp_init.o RV-OBJS-$(CONFIG_BSWAPDSP) += riscv/bswapdsp_rvb.o RVV-OBJS-$(CONFIG_BSWAPDSP) += riscv/bswapdsp_rvv.o diff --git a/libavcodec/riscv/blockdsp_init.c b/libavcodec/riscv/blockdsp_init.c new file mode 100644 index 0000000000..5370418687 --- /dev/null +++ b/libavcodec/riscv/blockdsp_init.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" + +#include "libavutil/attributes.h" +#include "libavutil/cpu.h" +#include "libavutil/riscv/cpu.h" +#include "libavcodec/blockdsp.h" + +void ff_clear_block_rvv(int16_t *block); + +av_cold void ff_blockdsp_init_riscv(BlockDSPContext *c) +{ +#if HAVE_RVV + int flags = av_get_cpu_flags(); + + if (flags & AV_CPU_FLAG_RVV_I64 && ff_get_rv_vlenb() >= 16) { + c->clear_block = ff_clear_block_rvv; + } +#endif +} diff --git a/libavcodec/riscv/blockdsp_rvv.S b/libavcodec/riscv/blockdsp_rvv.S new file mode 100644 index 0000000000..e85697613a --- /dev/null +++ b/libavcodec/riscv/blockdsp_rvv.S @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "libavutil/riscv/asm.S" + +func ff_clear_block_rvv, zve64x + vsetivli zero, 16, e64, m8, ta, ma + vmv.v.i v0, 0 + vse64.v v0, (a0) + + ret +endfunc -- 2.43.0 From patchwork Thu Feb 1 08:43:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45956 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp128170pzb; Thu, 1 Feb 2024 00:43:23 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVezBRutpaT0lMmv3xR6Y1+vM2aaGjYRn4lohxlFbOlR8FBGvt9v1LFWirokUfRQpTEuhdBDwrB/ZZ9GQucHkIZkyq7Y0u80ijYtg== X-Google-Smtp-Source: AGHT+IGest5yVYkPsx9qm6KHoLVCMu5cjQqlnCfwqmdeShflYhfBXr3wzzH4v98+T+zBem3dOKQv X-Received: by 2002:a17:906:2dcb:b0:a34:7fcf:36d8 with SMTP id h11-20020a1709062dcb00b00a347fcf36d8mr2553245eji.7.1706777003218; Thu, 01 Feb 2024 00:43:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706777003; cv=none; d=google.com; s=arc-20160816; b=LmsK0HflHm+98TSTm8b+qBwBMvIWSHGnYtW1m6OewzC9u3Y+ksaLikqu9xRjYGw1wI CXhXhIcpNKrBWnWBsy4oheUiqO+f/y00OhbxV8Pj8CpvY9Nmdr7+iL4g9Fuk/Z7XZprj lBLcWPHferZ+mdyL26KC9UFeOoCIcPOtUw1dkKwHHM1Io5YWDb51eqEfjRV76jduogBf bbWL99+Fg6dlpgQIZCfvyz29Ssu6T1q7PlHLa3lFMPNc8u3VN6+BoZJBFA4dWEtDDDoU ryJNrPogC2GHIJIqX3F1Rkc16B71WwdDsdVYR7p6tWwK4tcJfF7OCZ+9nQQu2OY3dOFO +qaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to; bh=QMsT4Pq183UV4gSENlnArYbjBQVz8LQHzfjW4AwvtfI=; fh=zj+6iMw589GdRKgTK3lwNgsMdfStj4hEwcsbASkQPGA=; b=ve1AmtEhDggMaLI2+T6OeZ8zH2GK0AHxf/+ry/bLCoaC+13YKk4uRYtE2g7okr6Tyf ++XD1VKO+MiVf2ikEE6QiBSSNXtQAeTqd5YYBWvVIFCZbE7RlrLWcBpDrd4QbAt6JhnZ uYX6MNpg4lz2/yQaqV8ok9KfseAS4St72LO2Pjpbu0z/veojDJH3FWC2clq2s6zO4b3R Pjtz5GetpBtfR1jJigerZWl4UhJFlmRRnNERXs6SpmcOfE42vW4VsJsoda/2oVTizKWG 5eGBIS1scSen8u0bdBXzYcS2xQIr7tMq3XcDGW6x7TfwMNYYtM7iGlYtG5IQomDRZPDL Tzmw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=f5qdyMfk; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com X-Forwarded-Encrypted: i=0; AJvYcCXzKfJ1OR1W6AKyImJEDiILVbZJVlFmvXBS8HP57wqtTxStlallJrv/95i3D3wBAlJEYYu26VV4sr2RsmQIVlQdM7gUPt+QVC6agnQ5hO4Si3LvrR8ftiKV/efu6f8tUoP2HjXFTg3GCSPnZ8SexqUlH5VPSKBkFQgCiTx4FtMD7yfz8gLxMeqJrnuoXWAhRiwGEM8bVIyfURHfvbOOAp1Ar87SB3JBvtq7Y3RzuUz70ny4CSYI+WsELn2M+HDIQEh1wS4fcHfauMDQmNuhO74Spq1oXIPxKzBybd6sz0h8DxcWT9xWaUXrHBEqkMeWnKUYyVv8QYqXl5udR0R6XMPHWyN/RFkw1+vrUezUPi9HUIw8sSM/sMpZgBDnzyrGQGPYhvFJTiKqKnUXBMuyr1WOJGFXSs2MEebcuKcJGPhsb+jJt7traXZkzgmaHKDRAb6Wi8rJZ5m4ke2pmf6MBayQKS0wgCZhW+qS/jnUziv6pY+MB/V4cUF+82QmGgbB/BhV6HorzjFfI8GaKtIcWtfyL9uRzDKDJSkhI3kJToraviHEE9Ckl7xHW7S75crrzmrxufv0DYulxyp+/Ty3jzVWAeyLbUe72CSzUCkUwJbs6oyMROO+dilSqwPLagMZICU8+e0d2AaeRLEOv4moO4Nu0V9RGac+tc48PCvDDZC3YZIkLIajCMpZvjv+EyNC5uBGOxTpxt9so0inKEzhGp0ZzcxBCtZgj8IdkoxpOv7YRnYWm4cWvgcltm3cB+Bb5ndlG8fXT/+WWFTxWrPhkGbsK9FmW/M0uCpc0moMTeAQH/GxmIFC7AZKJiFYuK1Pj+5Zqb9uvFVh6/yEG0J7LNnDJS9HK6Xk2KTkpCKYuFPDKbBXa+0k7LfKgMe2hnnYfqANOK1OFtGJ+wQWV7rykh4OadMLLPIzdtQYJIriHhZ0YU4snlk/gXF3i/txOhX/uN636H U1RMir+V4gY5kyQ/MhhLo3F/HnzWp9tp8AwM29VsaBeOrow5bmwx7+5TQDyaZGl1c3ee6kpjiPrLeRTGMUtijEibMnDI/4IY3d4uU6YqfRpTQcbRO3d3xbWF4eXoT+O9uVN2pkhnQXfHNRMhw+wYTFe4WvTHq7xv674//pSWDSRDGGO0NeOSXtoYtPGAJqrFNRy1X7uWMw2KWv7rhagZ8KD1ft9fHTYxFMovCI6laipC3yVsg084GdzQu6g/famEoRLlOdoIbqQaFb1o9NVMPoM3VXCz4z7czYWyMH7QP7KWT4YYZ040lBsiyYXpi73lDeSrZ0yDZxahjnpbAwtPsYmGhL0S6s0NhMr5dDW1zWd9PI6h6GXqDJqG6HTSRNvyKzsJV1Fi4mmh/ZJXn2MvMWKc5hx+YQNskAjSd8TWYakAH7BCMx8WjO5qJDk9MxnCNhUKiaVaMX7aG2AUz7d8Hpwuoayp98El5Wt3zyvEHXMYS4bS2pgo+bkIyoTWB0ehBRCL86Wu6Jab99Evn0uBX04zEHDWvtC2/3ZlPgoU5Vyh6mDmKmCcYzxlsw3sRrKfbkSZFaOZibSVnN94W3smqUCB7/1f5lLAmSVCWM Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s16-20020a1709066c9000b00a326070d9c3si6457731ejr.1042.2024.02.01.00.43.22; Thu, 01 Feb 2024 00:43:23 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=f5qdyMfk; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9196668CDFB; Thu, 1 Feb 2024 10:43:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7B96068CDFB for ; Thu, 1 Feb 2024 10:43:14 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-42aa93264b1so2863791cf.2 for ; Thu, 01 Feb 2024 00:43:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706776993; x=1707381793; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=3zFmnvoKYTJoBxLscguSE4b1lrJ0rs82HJBXepOOPd8=; b=f5qdyMfkPN2+ujzKISzgBCxg2K2v+nCF44xOGLgtma+khIP7jxRJ7H/EDVp4hsCEOJ oMIUuhKeRvkK4IkS+yLMiWDKzks23uANUB/wOH3INwZ1bSTT40LXek8BYRGHumFb5SBw H3WlmwXpzDt+ACTzC0UGef1s+4zcz4bNIaBBWCxE3BhB4KwjL93rWpI4V5SKCjgte0mt h7o7InG1hwMYIEanOW+b0VZvrujWnqRPuVzsDdUbM0vP8LW8O0eafcsVi/TE/6npvGkV 6yeTqSk/UgK6IDupHsi2orhDKUFt8d9v0t/2iC5l8CHkUj/hSVbADpbDq0mapqm9cpTV hs6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706776993; x=1707381793; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=3zFmnvoKYTJoBxLscguSE4b1lrJ0rs82HJBXepOOPd8=; b=F5JQxKZYFYTJ8W418RMRqmxCMk9nGxUswzjs1D33bqGhbTRL9uYvSfbYQK0DUfCNQj AH8a7tqKCuu59PfT+hoswerEfWuKxopFEQfij2EBa+0zYyVaVa/vLgObzMYaKCc4O//a Yl8GMNRbCmexgOE1I3WQPJH6+AJGwx8o1/5GRwYpb0JrtXpbuLRPKW3VWnOK5l7MGbcU +C16tvhnsZFwuwNSXAbZSpDp9PSkxd17qfppD4FqfJuK+j1bgW7IiSo98kdY8eeZS4YR rml5EQvB3UOz64cY3qch4x3RCU+AFGMTxCkqJgVIkGOp85Sc6KmHjAY/gY1hnQwsQ8or nl1Q== X-Gm-Message-State: AOJu0Yz0YBsdY0d2K1HsR5BeSrTUfpfj6aEyShIyWi3Cj71vzYMK77Kf 4zkdSDDOUmxrQZlGUcmD2dxNlifx1aFAG7WHSYM/BzoUzBoqOjvOd0cL+d4rMXjR+E/WYKAM4XY B39jj4atRZ8GM6qf1UAvnHm662r9VWReF X-Received: by 2002:ad4:5c62:0:b0:686:abd7:7690 with SMTP id i2-20020ad45c62000000b00686abd77690mr4527845qvh.19.1706776993111; Thu, 01 Feb 2024 00:43:13 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Thu, 1 Feb 2024 16:43:02 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 2/2] lavc/blockdsp: R-V V clear_blocks X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: qYcRELHViDX4 From 91236c12365de8a39250ceee07a6234a1735ae77 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Thu, 1 Feb 2024 15:41:09 +0800 Subject: [PATCH 2/2] lavc/blockdsp: R-V V clear_blocks C908: blockdsp.clear_blocks_c: 128.2 blockdsp.clear_blocks_rvv_i64: 102.5 --- libavcodec/riscv/blockdsp_init.c | 2 ++ libavcodec/riscv/blockdsp_rvv.S | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libavcodec/riscv/blockdsp_init.c b/libavcodec/riscv/blockdsp_init.c index 5370418687..59b2f9d47b 100644 --- a/libavcodec/riscv/blockdsp_init.c +++ b/libavcodec/riscv/blockdsp_init.c @@ -26,6 +26,7 @@ #include "libavcodec/blockdsp.h" void ff_clear_block_rvv(int16_t *block); +void ff_clear_blocks_rvv(int16_t *block); av_cold void ff_blockdsp_init_riscv(BlockDSPContext *c) { @@ -34,6 +35,7 @@ av_cold void ff_blockdsp_init_riscv(BlockDSPContext *c) if (flags & AV_CPU_FLAG_RVV_I64 && ff_get_rv_vlenb() >= 16) { c->clear_block = ff_clear_block_rvv; + c->clear_blocks = ff_clear_blocks_rvv; } #endif } diff --git a/libavcodec/riscv/blockdsp_rvv.S b/libavcodec/riscv/blockdsp_rvv.S index e85697613a..19b1ecdbef 100644 --- a/libavcodec/riscv/blockdsp_rvv.S +++ b/libavcodec/riscv/blockdsp_rvv.S @@ -27,3 +27,21 @@ func ff_clear_block_rvv, zve64x ret endfunc + +func ff_clear_blocks_rvv, zve64x + vsetivli zero, 16, e64, m8, ta, ma + vmv.v.i v0, 0 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + addi a0, a0, 128 + vse64.v v0, (a0) + + ret +endfunc -- 2.43.0