From patchwork Sat May 11 19:46:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48727 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp280553pzb; Sat, 11 May 2024 12:47:21 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUzPL8cM4I5d/Cx6h4/Z+Mp7MCANXPT9JKwMQ9/kZGNcZNcbh437b6ZWU1wk4360fSf1JvneF/mVJxYALngltgPgvWuJNYgSNz25g== X-Google-Smtp-Source: AGHT+IE2fznrSa47PZhBfLtAeQh4hzeJDGZGzVQsOLR36dtCtk+gwDinxQoH2Jm2LKT/sAk0d4gS X-Received: by 2002:a05:6402:5154:b0:572:58d3:a6bf with SMTP id 4fb4d7f45d1cf-5734d6b2ed1mr4548632a12.2.1715456841379; Sat, 11 May 2024 12:47:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715456841; cv=none; d=google.com; s=arc-20160816; b=ejyRajWBrem+DZsNN1BD822yF1VDM24zytaQnapl/28xnLCBKfBmNJn+ZIw9Lf63v7 7R08svyhSGV63dsR3WekoF5pF+uD5odBf0ODcMcLxc6tydNBFrIInMAb/DGv3U08jYkz 02s/PE6kLEny9dRH8eHzP7G8zmCGceQpykLCyXtLaewlQKK1awgIR3BzFQR4UhxsNJhL wzmA9UD0DUH7hH/Jr+tmsIc5Fb1F0xgriFFoXcQBlJaAw4tL9zKUOzocOtEVhe4rE1rE z/3dZOHia2bfE0/TVHKoeKCv7HABbbwCmsG00wdBJdaokTIcLknnBC0Z1VYGRk9yp0Vk SdLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=211L9MuHNjm2LUbtf/ekuIIf/ZEwEBrw4l98kf4lM4Y=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=nx3ix4rAVuYCM/0yf6wWl6IZc0YCVxgpt0ucwKyG25fub7LzEOCo1uTvcMABGu4po+ XbqisMx2nIo3bC5wTA5O7coU507Gfdkfzr2BPYNN+MQiyxvYfaY9dWdY1c1jeSqoswFR KSImohuHoyiErq9NFI2gnFz9SnzVxIiQPJ3JDTr5YF73iFM9pynG/p94DblBL6XNE3uy UZzAC2EjIAippfdnrmw2vnMBHhXE0m38hjfxZXyxqJXKQqQ+8HMeCETXzUfVGAto8x9P 7mwk0ng4neJ6shNPNnv1DTI2E6j4f72fujHL5jX+47YZo6t1pv1A//C4Cje1EEoZ04pb nFMw==; 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=bSFDC1EN; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5733c32c4c7si3245969a12.429.2024.05.11.12.47.20; Sat, 11 May 2024 12:47:21 -0700 (PDT) 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=bSFDC1EN; 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 AA85F68D2E9; Sat, 11 May 2024 22:47:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7DD4E68D2E9 for ; Sat, 11 May 2024 22:47:09 +0300 (EEST) Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d86adab5a7so154409139f.3 for ; Sat, 11 May 2024 12:47:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715456827; x=1716061627; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=2zRIs6CEYIc7fPszXW6eYZNANf6xeLu21HPVF425C9k=; b=bSFDC1EN1y6kyMgnZTLRSjsGsp1T64HE/cnb8FNgHuJMtZfBCP4LAe8Znm881SDY68 TwpJSCnLK3umQmNiEtOdURVuJ4sfFaNaMIdrx5qFsIsxmiFYb4EFCoZfyuTVMOQKG6TU hSvBGh4gf6fZFBFb41c7RZBx47pBJJyTK0gUUYAXZkUke1eRVbQ97thUPmHICCwXd4Rj Phcs17ZKTRDGRuBncMN8WseY6I8cJ4gBKya1Q5KZLWAMnJyTY9pCui1in1oeUNg1tmVR KYj3y4Sz2jNvU52z2tRNOzGUgqvZZHEDbR94y0nBIERqlIb08tm6x4Nbsc7rr78iugAh BM3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715456827; x=1716061627; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2zRIs6CEYIc7fPszXW6eYZNANf6xeLu21HPVF425C9k=; b=dJn0AEWEmL0KMrazwJThWpvPfe1/vLnxlvdE374wQXTasW7GgsYBuIK2cdyQpE878M jNN1Z8ut00LqOAwO0sbDWMNu3hFdCpTuaqw4797F5BXPhQ4GmGw97oP02/PoXkWbUlH8 25skPy9q48M54/MBE2V/4v3mWhYlEngG8Hba3KC705laCd6M8M8tQWMD9OgwVO2qBGQU LtORdxUJ/QS5p2NaJFgxXJavywYFkGxtj0KMXGK+ehQvomj0L8z2DLCf+Cj0CLxKLza1 hudNnbi/ndFJCgKKygWGB6TzerOgtPtUHMnLVUbt4prFESg22v1HbXLxe0U3vy4k7aWL b9Ag== X-Gm-Message-State: AOJu0YwAlClkCF8mxVZ9CVwpXBHV2kAo5oEivWen7LT6j4+gtI9JblsM FObBEdb4buASHNvAcv1TWWpZAzwlSRzNJtOaOYw+jN6bVEsbg+3Zwnq9Vg== X-Received: by 2002:a92:ca08:0:b0:36c:11a0:9d62 with SMTP id e9e14a558f8ab-36cc1486327mr79374865ab.7.1715456827173; Sat, 11 May 2024 12:47:07 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6340b769197sm4424308a12.24.2024.05.11.12.47.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 May 2024 12:47:06 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 May 2024 16:46:55 -0300 Message-ID: <20240511194656.1576-1-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] checkasm/flacdsp: run lpc benchmarks with an unmodified buffer 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: OUyC/H+V2Zwt Signed-off-by: James Almer --- tests/checkasm/flacdsp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/checkasm/flacdsp.c b/tests/checkasm/flacdsp.c index b308237db1..6561b4ed20 100644 --- a/tests/checkasm/flacdsp.c +++ b/tests/checkasm/flacdsp.c @@ -58,6 +58,7 @@ static void check_lpc(int pred_order) { int qlevel = rnd() % 16; LOCAL_ALIGNED_16(int32_t, coeffs, [32]); + LOCAL_ALIGNED_16(int32_t, dst, [BUF_SIZE]); LOCAL_ALIGNED_16(int32_t, dst0, [BUF_SIZE]); LOCAL_ALIGNED_16(int32_t, dst1, [BUF_SIZE]); @@ -66,14 +67,15 @@ static void check_lpc(int pred_order) for (int i = 0; i < 32; i++) coeffs[i] = rnd(); for (int i = 0; i < BUF_SIZE; i++) - dst0[i] = rnd(); + dst[i] = rnd(); - memcpy(dst1, dst0, BUF_SIZE * sizeof (int32_t)); + memcpy(dst0, dst, BUF_SIZE * sizeof (int32_t)); + memcpy(dst1, dst, BUF_SIZE * sizeof (int32_t)); call_ref(dst0, coeffs, pred_order, qlevel, BUF_SIZE); call_new(dst1, coeffs, pred_order, qlevel, BUF_SIZE); if (memcmp(dst0, dst1, BUF_SIZE * sizeof (int32_t)) != 0) fail(); - bench_new(dst1, coeffs, pred_order, qlevel, BUF_SIZE); + bench_new(dst, coeffs, pred_order, qlevel, BUF_SIZE); } void checkasm_check_flacdsp(void) From patchwork Sat May 11 19:46:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48728 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp280607pzb; Sat, 11 May 2024 12:47:31 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU2r5kLFN7S5t5Mo9AtzvaSiZHMJhju7/oqkyW4yWzMaOzn1WF/7yra4QzgiSkA8o/JwJX/WLMPpe+Ubarn94QF1AJ5VK08sAnyYg== X-Google-Smtp-Source: AGHT+IF+u6udUCogESZT1Bh007vJqTpWvIpJHUzV9fod7BtLjkHXjRQBk1xMSDodn5HetSGTCe/0 X-Received: by 2002:a50:d696:0:b0:572:a6fe:f7e7 with SMTP id 4fb4d7f45d1cf-5733294be26mr5917959a12.20.1715456850803; Sat, 11 May 2024 12:47:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715456850; cv=none; d=google.com; s=arc-20160816; b=eNHLRc4jxpNKnDT2Q7Q1VdkO4oDyoqBLvwge8v6ZI4QxOzKZUq559gQpYeKPJa3Wn4 yOThD4H405i8knkXgWjKgwwHoCYjUekUpaP21h1b0VvjdgPlKHbDSThMPFE5kDpkrkEf +LSghOUbmwtWUkJcxIhhkksnDxLm7OeeMNovjJEsjdhmkH1cbtEiA+bAoaIT+eNSfj4z RpN/VrYkkwm4ey7YD8fqeij/F8ICsfpo1iZ6kTSaI9NwF5B8GWegyC5vw68NGKBobjlm AOrRfBo9F271XNK7igG+Sb6TUTZ2ez5jIPnzw9wOn+8VqAdqsMGhaMnv1AyFZY6SZKj6 /3dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=BF/3yAGvPhPgJsif5hnmFTkBeZ4dqE9yZQHMtQ6Bofc=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=z0tSmt16OqOMlhd366UgOjbGcVZYuKasIVaDkW2WwTcC9YTWuFwi3VxHtGrVnz81hi 6Ge/eZQiRq2klq85N7LN/C/bnLZx8r8zg40MeEFIuJs7oTqcYT2h8OqM7dZlU45yJg9G DdBRys/zZG/b8sF0f/kM6fnSfQk0i+gGjdesG97k+WD4rp8DwkkTGojyCGvUY1lUNfss KGLdZTdDY66O8UaglwhdAcOVtl31384oC1NoYVbH6x32Sw8EhHbOyddyEZ18TNf+w+IS i6Gf97q46ZDPKKw6BUJv4rSj8kPYtjQo9bylEleD9FRPAwASghIq8rxE28NY+6K0BkMq ZjWw==; 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=KjqQLs6j; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5733c327085si3312875a12.356.2024.05.11.12.47.30; Sat, 11 May 2024 12:47:30 -0700 (PDT) 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=KjqQLs6j; 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 D8A4668D43F; Sat, 11 May 2024 22:47:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A9A4668D2E9 for ; Sat, 11 May 2024 22:47:10 +0300 (EEST) Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36c926b3fc7so12323765ab.1 for ; Sat, 11 May 2024 12:47:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715456829; x=1716061629; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Iv35I8FBUhDIEI1sFDhFIut87t4qWjQXITlyzTqMdbY=; b=KjqQLs6jUeNPPq2l4mqJxXQh5qWvSGdTvyIJvEU3NRK9uOFrDT5dwIdBdqAh3wqo1k yXHP0YuF2tm2+m6+lqa+4Ij6RG4otagSkPfUPJiB/rd8ZqtsvWxQkJS3LsBTi23XnrTn 0U4v4tImKaMF4T//BiNaYctHwE5MAqtUZyEZYGF0u5FWyl4mQc4imx7b6uCSZZ7C80dZ +xc4z8TaORYcH4DhXO+ScCJlyLcVEdqma1qlTDSfaBoI3/YUgfmW1lAPys7mvuS+yo0f TUVeqlgqadC6VoUD7qW6nELOjpnALVfrHb55KEJUMBKAFlUIWRDLquYzMrcuP1Lhmi3P 30Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715456829; x=1716061629; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Iv35I8FBUhDIEI1sFDhFIut87t4qWjQXITlyzTqMdbY=; b=U458uZYF3P7Sk+2pCU0FNd5CslK3/Wp6aMoMwT/3Uik34QM5rvwK65OxBiqAMHZNET jaKQ90rhJc9xYW2d2PqX+8Bog1HWvtsVoGMg8nNxxo+lmdVqhIFz4aT5Qdq1Gjuxy9YN uM3/FKQdQHeVJ9qmIFKYOmJRwTBEKl/dRfON5ZK0OZwecsJ+E9QBKkSmt4zTfWCMlwmV oV1E79URIH/hcrdqr4jh8nYfoZzIPU2q42NmXpYVZHnBrqkH+q3OLoVB14gqHKPLcBTE MmwgonkVfw3hrBRl0by56JLR971swAbTzQmQsfmpSusxeruLr/5kifGGg73xgvLfgf+z VejQ== X-Gm-Message-State: AOJu0Yy+kMRCTYfDYPEQ0NuydhSCEUOUsqTCDjdawXljXsxAkdvCh9Xm uU1Qj0wsJSlQc4qDWCIYIfxzpHMVUORKBE8gyZqFI82H4RVxP62jodQZwA== X-Received: by 2002:a05:6e02:12ce:b0:36a:2a57:9393 with SMTP id e9e14a558f8ab-36cc144b65dmr71362815ab.3.1715456828570; Sat, 11 May 2024 12:47:08 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6340b769197sm4424308a12.24.2024.05.11.12.47.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 May 2024 12:47:08 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 May 2024 16:46:56 -0300 Message-ID: <20240511194656.1576-2-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] checkasm/flacdsp: sanitize lpc arguments 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: vZjH0UKcTBbk Fixes signed integer overflows as reported by ubsan. Signed-off-by: James Almer --- tests/checkasm/flacdsp.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/checkasm/flacdsp.c b/tests/checkasm/flacdsp.c index 6561b4ed20..bf25cea39c 100644 --- a/tests/checkasm/flacdsp.c +++ b/tests/checkasm/flacdsp.c @@ -54,9 +54,10 @@ static void check_decorrelate(uint8_t **ref_dst, uint8_t **ref_src, uint8_t **ne bench_new(new_dst, (int32_t **)new_src, channels, BUF_SIZE / sizeof(int32_t), 8); } -static void check_lpc(int pred_order) +static void check_lpc(int pred_order, int bps) { int qlevel = rnd() % 16; + int coeff_prec = rnd() % 16; LOCAL_ALIGNED_16(int32_t, coeffs, [32]); LOCAL_ALIGNED_16(int32_t, dst, [BUF_SIZE]); LOCAL_ALIGNED_16(int32_t, dst0, [BUF_SIZE]); @@ -64,11 +65,13 @@ static void check_lpc(int pred_order) declare_func(void, int32_t *, const int[32], int, int, int); + if (bps <= 16) + coeff_prec = av_clip(coeff_prec, 0, 32 - bps - av_log2(pred_order)); + for (int i = 0; i < 32; i++) - coeffs[i] = rnd(); + coeffs[i] = av_mod_uintp2(rnd(), coeff_prec); for (int i = 0; i < BUF_SIZE; i++) - dst[i] = rnd(); - + dst[i] = rnd() & ((1LL << bps) - 1); memcpy(dst0, dst, BUF_SIZE * sizeof (int32_t)); memcpy(dst1, dst, BUF_SIZE * sizeof (int32_t)); call_ref(dst0, coeffs, pred_order, qlevel, BUF_SIZE); @@ -116,10 +119,10 @@ void checkasm_check_flacdsp(void) for (i = 0; i < FF_ARRAY_ELEMS(pred_orders); i++) if (check_func(h.lpc16, "flac_lpc_16_%d", pred_orders[i])) - check_lpc(pred_orders[i]); + check_lpc(pred_orders[i], 16); for (i = 0; i < FF_ARRAY_ELEMS(pred_orders); i++) if (check_func(h.lpc32, "flac_lpc_32_%d", pred_orders[i])) - check_lpc(pred_orders[i]); + check_lpc(pred_orders[i], 32); report("lpc"); } From patchwork Sun May 12 16:06:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48817 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp647012pzb; Sun, 12 May 2024 09:07:22 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWOvTCbFZ6wxF1bTCZEpNdy59tr4MX8JgctJdcvPirVtYOAQCy6cGn9SDBIwygCa7YynG1Q1eGPj5V37aGeKxegye2RFjpynjsI5Q== X-Google-Smtp-Source: AGHT+IFhjPCST4U0UR37+yjRbY5PH1gayI7MiPs/DNmLrHznk3JhvfoAr1PWCI4dbxCifmim/JDB X-Received: by 2002:a17:906:a28c:b0:a59:e5ca:db31 with SMTP id a640c23a62f3a-a5a2d54c743mr475731066b.16.1715530042458; Sun, 12 May 2024 09:07:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715530042; cv=none; d=google.com; s=arc-20160816; b=rCfulLaUhaRbzQxiX2G77NeiCv63e9UUkWEgIDG7m83/908etWo98EMbPQ/767WUJY tlY6LBqzQZ0jFdi+C/1TrAcXeL+N8cYsYArNuDgsSlu/ZcW1oKNj/pKxMliOjOBYycp+ I1pJBanrwCPg06dviXgPvLjInxKxmX/EMJAqbpZXVM7lmCyyQJ23nvrpcHELENh4gNb1 U0uFyz2PbTZkAb8zKxIQ4rtmoNJX1pEFpeiORO2EgxWqbLXk5qTAw7yLs4kIFvdUEbXB wIGR+AQHphsfLMP5ToKQViNDDz4YQxvC7JIxEp/uVFv2eC2vHgi7OI2gIOoTTLJxNCb3 tfgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=lD44OM56At5+WOpZqa5oxu0Gwqot/JR+y7OFueCVcjM=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=G/RVaa7DHyJpSD3wtKt6P2IeRkD34dQeWCU2RGsPa4Q7AZmQ/wL/TfM59ON7gQLiHP CEiA0VlgfF3EqOa0UW8RqP1sX7JbcYJ14y03xdekHhDT4oP2j7RmTlciRVqQce5NnN04 fto/SZkyIVxudPlsBTjhk0V5DHnUkrExhX0asUvl6LzhHqoI6NsAbKCMwNbfOURHd1p1 Yp6nGj66+TuNw8ObEm+wdWMO0Eh943VuquMwdwxam72CdW7zYVmYfKRZzKrjwnfLFbF7 5WhYBwtIvc9PjXd4XBdkirJHr5F6Gsor/E0Z+FJD3yHa8D6R/UpEoBFAJmBfBkA4zXwW QAgw==; 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="FvD3N9/6"; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a1b602bcbsi399784466b.489.2024.05.12.09.07.21; Sun, 12 May 2024 09:07:22 -0700 (PDT) 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="FvD3N9/6"; 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 2B66468CEC6; Sun, 12 May 2024 19:07:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 87D7E68D3C0 for ; Sun, 12 May 2024 19:07:11 +0300 (EEST) Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-6f5053dc057so11671b3a.2 for ; Sun, 12 May 2024 09:07:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715530028; x=1716134828; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Pt0Rpudd2PRnmfwEPnU4CPz2xpGYBHn54SCJKpRooYw=; b=FvD3N9/6uIa3p6slPaqUET+tgwKGlfhvX1Jrn0GpThgvL5tG238EdBfUKV1xa2ZHxE dCvUbV4dzjxFGvYPqWCS0VP28Oj/hiyGMypQZav2enfiDEfgr4QmBdlAgxFNIQtjBPWU 8h9pCJnglemLVqi//AHmrYH1CHx3NxtAuC7Pjtj2RoEaIkGJJbgpvydZt7MAb+Ncp+UV LbkiRXPJ1tFlvQfAUJrfZETjDf9m327ZlUq5tgZYC9Xm4n3SvEUXcEUbAtDZr73UThMD JDm/PHbz9VBhbW7qZnFmUHFQLCd1rQvqKuP1Yu5SlIcVx6MacFqg+6R/lwoMXUVKsZSt VQ6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715530028; x=1716134828; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pt0Rpudd2PRnmfwEPnU4CPz2xpGYBHn54SCJKpRooYw=; b=kN1c01PyjJvdkLz6g4mY0ORWD3V87mdegwWJKSXD785S68GXO4c9ZsmK8p8/U6BnEd rv4Pz2TUR+d41NTQ162q+S5VPXNrvy45/7Zkdai6QIwCJe/e1c6IQoPoRzxP5gI/fHd/ AFAKMunExbVUnJgwn/fVp/1bVfzf2oojkmxNMCAWAtOZp06OBXXoTMoB26pzR8oNFEWP T8qH1kLt2clPQA5SvxcpfL8W5zIeYNGz1fDeoNR/0nb4lNsMOkeIZ305MhY7QGSqr2t7 hZwB7/sCPrpjbqEL4RNZZzJ8XyEm2n8zBdcQEpsX1XPTgxLT/Qxh/gVRv/9Er2Ps8Ogx 2YIQ== X-Gm-Message-State: AOJu0Yy4tb4d42UOr0HObM6P6cajcvgyq19tWFmSv4mVeIV0hN3LC415 xJ3PpG8XHtx26bcFdvpOC6XfHqfPElFQfuKr3hjkXQnq6ajErrlBOmoQEw== X-Received: by 2002:a05:6a21:339f:b0:1af:dbe7:ccbe with SMTP id adf61e73a8af0-1afde103d87mr10636301637.28.1715530028286; Sun, 12 May 2024 09:07:08 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6341134705dsm6274574a12.85.2024.05.12.09.07.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 09:07:07 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 13:06:52 -0300 Message-ID: <20240512160657.2733-1-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/8] x86/flacdsp: add a SSE4 version of lpc16 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: Dkz/RPw+rly3 flac_lpc_16_13_c: 2841.3 flac_lpc_16_13_sse4: 2151.8 flac_lpc_16_16_c: 3382.8 flac_lpc_16_16_sse4: 2228.3 flac_lpc_16_29_c: 5800.3 flac_lpc_16_29_sse4: 3727.3 flac_lpc_16_32_c: 5972.8 flac_lpc_16_32_sse4: 4052.3 Signed-off-by: James Almer --- libavcodec/x86/flacdsp.asm | 13 +++++++------ libavcodec/x86/flacdsp_init.c | 3 +++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libavcodec/x86/flacdsp.asm b/libavcodec/x86/flacdsp.asm index 4b2fd65435..f38eb7db76 100644 --- a/libavcodec/x86/flacdsp.asm +++ b/libavcodec/x86/flacdsp.asm @@ -38,9 +38,9 @@ SECTION .text %endif %endmacro -%macro LPC_32 1 +%macro LPC_32 3 INIT_XMM %1 -cglobal flac_lpc_32, 5,6,5, decoded, coeffs, pred_order, qlevel, len, j +cglobal flac_lpc_%2, 5,6,5, decoded, coeffs, pred_order, qlevel, len, j sub lend, pred_orderd jle .ret movsxdifnidn pred_orderq, pred_orderd @@ -67,14 +67,14 @@ ALIGN 16 jl .loop_order .end_order: PMACSDQL m2, m0, m1, m2, m0 - psrlq m2, m4 + %3 m2, m4 movd m0, [decodedq] paddd m0, m2 movd [decodedq], m0 sub lend, 2 jl .ret PMACSDQL m3, m1, m0, m3, m1 - psrlq m3, m4 + %3 m3, m4 movd m1, [decodedq+4] paddd m1, m3 movd [decodedq+4], m1 @@ -83,10 +83,11 @@ ALIGN 16 RET %endmacro +LPC_32 sse4, 16, psrad +LPC_32 sse4, 32, psrlq %if HAVE_XOP_EXTERNAL -LPC_32 xop +LPC_32 xop, 32, psrlq %endif -LPC_32 sse4 ;---------------------------------------------------------------------------------- ;void ff_flac_decorrelate_[lrm]s_16_sse2(uint8_t **out, int32_t **in, int channels, diff --git a/libavcodec/x86/flacdsp_init.c b/libavcodec/x86/flacdsp_init.c index 87daed7005..dee4bf88fc 100644 --- a/libavcodec/x86/flacdsp_init.c +++ b/libavcodec/x86/flacdsp_init.c @@ -23,6 +23,8 @@ #include "libavutil/x86/cpu.h" #include "config.h" +void ff_flac_lpc_16_sse4(int32_t *samples, const int coeffs[32], int order, + int qlevel, int len); void ff_flac_lpc_32_sse4(int32_t *samples, const int coeffs[32], int order, int qlevel, int len); void ff_flac_lpc_32_xop(int32_t *samples, const int coeffs[32], int order, @@ -93,6 +95,7 @@ av_cold void ff_flacdsp_init_x86(FLACDSPContext *c, enum AVSampleFormat fmt, int } } if (EXTERNAL_SSE4(cpu_flags)) { + c->lpc16 = ff_flac_lpc_16_sse4; c->lpc32 = ff_flac_lpc_32_sse4; } if (EXTERNAL_AVX(cpu_flags)) { From patchwork Sun May 12 16:06:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48818 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp647123pzb; Sun, 12 May 2024 09:07:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX9v3tsl8FpUxevqrYzxDpdbYUGWKdVvHWestzZPYERMZyHT4yl5QwNrSrjujPL5D8pR5CN+CrIj61j/EnrfkcWpy09V5KcpeSipA== X-Google-Smtp-Source: AGHT+IHd4wPvOutGhLKOsISIZDHw0KLCKmrthg2DgeF7JDXqzqLuTWFsEnvicZn0yFSxKEY+H3jU X-Received: by 2002:a17:906:3e0d:b0:a5a:1077:334 with SMTP id a640c23a62f3a-a5a2d57a39amr763642266b.26.1715530053465; Sun, 12 May 2024 09:07:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715530053; cv=none; d=google.com; s=arc-20160816; b=IqRRySCpUSdJdRqe2721lJKznEcx3Tv/TTMCZciF0KSFIL5FHIraZCEYOP4fLUKXxI IbE6Sq6SII7dAlWw3Pfh4En1z1viD5/oM/cX941E+d0dzaj+DsTNwp47SLPQYLOXFdcX Qg3ZjUDYhDrbCHZXpFixO4s0SMZfp6bKUC05x367mFti4QIBloWNZn23pP4GitdQSZnw knIO6PjHXMQTCBj44dDtNewLGAXEoEAP7G7Q7f0iV8QLvfZew2IJwOM2URkmgrBwNYUD YdzskrHWjEx8JiFo3HkksRr/D7z2B0o4qxep8827ZQIdppLUDcNVZ1iCSSQeB6eu+Gdk DRmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=L8Zr0ZQYUhvqt8rNosiev4Ud2/C2AyVX8D+c+SqJL4k=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=Zjf9dzadkEVxZGVYrPwUdwjs9M8oNZHYgczXuZ/6uoeOi4d1QYK6OoR9ja5uCI1BZH oQZ3MM3GZ7DzLUIGUCc6NqQm+tXXHhCqfad9OfGMssCH2eTuq8ZSv8TnLQMdBK9VeLV5 PHHEopQ2IwkhHxYaJrdIwrx7mumQQkQEBvDtD//w5Vy9KBZtN0JZU7vhmQipaGW+BZE8 bwrWHURn/dq2Omjxb7UnjXuDHVO8KUUd6Wq+uwrsxcsmA3eQMuMLZmfkOL3SxFuUDiQJ RmETF1Tito5ueJ/mCG8FCqhpQvpP/zxqzTVh4ZvYhh/av+pb5dlIVXqWQ2M555Wtkc5Z 2RBg==; 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=Qvj81YBw; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a17ba5630si420631466b.648.2024.05.12.09.07.33; Sun, 12 May 2024 09:07:33 -0700 (PDT) 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=Qvj81YBw; 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 4D17568D652; Sun, 12 May 2024 19:07:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 917DA68D5BE for ; Sun, 12 May 2024 19:07:12 +0300 (EEST) Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-613a6bb2947so2868713a12.3 for ; Sun, 12 May 2024 09:07:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715530030; x=1716134830; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=TQiZ/F53PQFcSLOTkSx6UtRaS1Ktc5LcPqeLu6JtzSY=; b=Qvj81YBwAjvAhiCfFd2gfUN0Zhf3YJVAA9iVjY8ZUqyeOGir8PFk6k8p+1gDyOPrgw c6dElYZUNB8ibkzsB4qS6DFUQDQBD8ZM6p7THDKbZISJrLt5oroUaadmjPWlxO6Ma8va l4fp8O7dUWAfHfaw25BvoJIDVdZk3/DZJxvm/J47ZCWEGjRUQrw8aItZsLiTQo4A45ca W9nWpPnpvIa+p2D1WCpSyd/tfhul+A22aEjp36P055Spo07TjO80k/dYZ9KWzLzVNU9u 2HBZNXU7IePsOE4zIIMcd+pJtoILIdjH9UGYnH1HnKWcyo2dCn1f1WFN3y5dG6AaRBJ3 3r9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715530030; x=1716134830; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TQiZ/F53PQFcSLOTkSx6UtRaS1Ktc5LcPqeLu6JtzSY=; b=fXJekw3RP2eauU9zCIhSQhShlBipRirqz0M3vrAaVbrunDB24K8v6NRYFXwHhzOKOt VllSUEymzpR1U/wFhoRuBvzllAVrle9IdpsprBvGBQyCev/FMpJjGsxIDA5VL8YZXYQV 2kPuOcQpRvvquTA8NJdtMelbNfGhtxRpM8K122LsKrl1uRVW4gDdc+w024caz3ibq72+ ONgI/GMeIEbNnrmMd9bex7fzGNEVdvGLI5/E+ciMUwx/iaUl4jRe3ISrYidqBLqoZ5Rp Ocr2WUrpbSgzPnXJDvCmftjA4NCNRxcb9clrrTtXNCTd5FzlWOQcc8ecuZ5IMkcKt+3U 9A2A== X-Gm-Message-State: AOJu0YwjhCi5pJV+4W5Rj7yNJW7oBu3xOeGHs0L1yBqAzxbPdgRYhsSo fjA7OdHMm5kHPpdXvLh8BbLJfQsXMjRDxHz3zkUKp271aIF7/oR1kmDdug== X-Received: by 2002:a05:6a21:c91:b0:1af:9728:de86 with SMTP id adf61e73a8af0-1afde10456emr7216675637.32.1715530030019; Sun, 12 May 2024 09:07:10 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6341134705dsm6274574a12.85.2024.05.12.09.07.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 09:07:09 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 13:06:53 -0300 Message-ID: <20240512160657.2733-2-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/8] avcodec/flacdsp: split off wasted bit handling into dsp functions 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: rKSIY0ZJ79/c Signed-off-by: James Almer --- libavcodec/flacdec.c | 8 ++------ libavcodec/flacdsp.c | 20 ++++++++++++++++++++ libavcodec/flacdsp.h | 3 +++ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index 91bbdc657d..6e6a2896b4 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -602,13 +602,9 @@ static inline int decode_subframe(FLACContext *s, int channel) if (wasted) { if (wasted+bps == 33) { - int i; - for (i = 0; i < s->blocksize; i++) - s->decoded_33bps[i] = (uint64_t)decoded[i] << wasted; + s->dsp.wasted33(s->decoded_33bps, decoded, wasted, s->blocksize); } else if (wasted < 32) { - int i; - for (i = 0; i < s->blocksize; i++) - decoded[i] = (unsigned)decoded[i] << wasted; + s->dsp.wasted32(decoded, wasted, s->blocksize); } } diff --git a/libavcodec/flacdsp.c b/libavcodec/flacdsp.c index 71b4ac44aa..610831348a 100644 --- a/libavcodec/flacdsp.c +++ b/libavcodec/flacdsp.c @@ -84,11 +84,31 @@ static void flac_lpc_32_c(int32_t *decoded, const int coeffs[32], } +static void flac_wasted_32_c(int32_t *decoded, int wasted, int len) +{ + int i; + + for (i = 0; i < len; i++) + decoded[i] = (unsigned)decoded[i] << wasted; +} + +static void flac_wasted_33_c(int64_t *decoded, const int32_t *residual, + int wasted, int len) +{ + int i; + + for (i = 0; i < len; i++) + decoded[i] = (uint64_t)residual[i] << wasted; +} + av_cold void ff_flacdsp_init(FLACDSPContext *c, enum AVSampleFormat fmt, int channels) { c->lpc16 = flac_lpc_16_c; c->lpc32 = flac_lpc_32_c; + c->wasted32 = flac_wasted_32_c; + c->wasted33 = flac_wasted_33_c; + switch (fmt) { case AV_SAMPLE_FMT_S32: c->decorrelate[0] = flac_decorrelate_indep_c_32; diff --git a/libavcodec/flacdsp.h b/libavcodec/flacdsp.h index 15149c026e..5a59c0c864 100644 --- a/libavcodec/flacdsp.h +++ b/libavcodec/flacdsp.h @@ -30,6 +30,9 @@ typedef struct FLACDSPContext { int qlevel, int len); void (*lpc32)(int32_t *samples, const int coeffs[32], int order, int qlevel, int len); + void (*wasted32)(int32_t *decoded, int wasted, int len); + void (*wasted33)(int64_t *decoded, const int32_t *residual, + int wasted, int len); void (*lpc16_encode)(int32_t *res, const int32_t *smp, int len, int order, const int32_t coefs[32], int shift); void (*lpc32_encode)(int32_t *res, const int32_t *smp, int len, int order, From patchwork Sun May 12 16:06:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48819 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp647210pzb; Sun, 12 May 2024 09:07:43 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX6KIBViZl/SqM4um+KP5pDaS6Y4rtlgOJd3nmlBRgs91bPtoxP0kAYbGtvuRxLgA3ZmE5OE/AwQ/KGD5gZcbP4QfUkZf+7soxqkA== X-Google-Smtp-Source: AGHT+IEbcMKUHAMR25o72l1TixXjXO9cBZQuDu5ZUfy43BEeVCoxe9h8AVGMAivPXI/NEbmnqy+6 X-Received: by 2002:a17:907:1b08:b0:a5a:5b1a:e2e4 with SMTP id a640c23a62f3a-a5a5b1ae84amr222064266b.20.1715530062752; Sun, 12 May 2024 09:07:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715530062; cv=none; d=google.com; s=arc-20160816; b=xqgl3W015GjeFnHHrXgyaKmO3rRfVtxycOkQ/9gCx7HiM8jqw0RnnUz7pane1IUDOI CHmmcGlGx/u1OY4tzUCNFNAS1d4OrZDiQTJK3u4ZdhqdTctlvTtxzx3aiXSH1KmDoXUw KeKDeeWqRB13uTreGfuZfzCEnh008jRYX+IhBkQkHEYfgO0/M0gPcFh7beqHiEPSFEmm iBMf0D4pDToa8U9CJQ/bnw7LtpIkywrguMXcq0RBEattj5mSpvoPZJDcgG2mQ5cuqYJH SUm3WSuy5LWkyaEPiVggDFUOBZ1wHtY+mO+BapbGijJNyZGCQYPq0AIbTQfrD6CCVAeE T55A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=sscfwbiYAcU/fheHqKU1Jt9r/ZlZY2cFOYArsu+yl+k=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=TiRPXu8LruVXpWdNr5mPv/pG0teUB2Rx+Tc6pDXsHlZFjl7AAXnK3pS+XNxNCdFyBC KShNRYhRFTUF72uUPmEu7jzRPaO7kiteQNzoIcTNzhMaumpsF/fUtV8yikIRB/5OHB4E nQhUVjVa8oEzXi/Zmq8wRZz9XKwCdq23Md4TtrKgr6mbXcFBUhm9n+KxMP0KDARiSTsb v2VwLkygaQwRraYdfWOBl+tvNEWs1A6eUT/wvyDtuKNwkej6zbMzEHT/KEvFeIDNe4vj l9Wq/wY9jCka+VKOGqnkiuTufEjUxdUncBsx3U6aJoxYfBseFbR2k24ItSe+EutK92em 7imw==; 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=UBXvsW8A; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a17be6f3csi437477566b.798.2024.05.12.09.07.42; Sun, 12 May 2024 09:07:42 -0700 (PDT) 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=UBXvsW8A; 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 AA09C68D65B; Sun, 12 May 2024 19:07:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3A71B68D650 for ; Sun, 12 May 2024 19:07:14 +0300 (EEST) Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6f4e59081e6so1367061b3a.3 for ; Sun, 12 May 2024 09:07:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715530032; x=1716134832; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=jIpksEoXqQi2l+tKH8hoZ5+HJZT92LIkJSjjEsXZRgo=; b=UBXvsW8APD78hyDo64W72gwNAcDVw6guUSvX8+cpWUCsoEVy5Sm1hkZr8X5btLWiZo IX+VgycKT8AjwqxWsIVa9k++Q3aQ5xQIcy5rUHEDreolkO6ortanVUAzk89AMYC8GtXH 9Z1FADvRSFiw/M03U1Z8qH/CvgOh/maQCe8TNeTwh84QtpOZVMhI/hPmBXnRMAa+xVRg KW0KNoTuN/Hlp+UkfrKEvVZDVTKZd272GNx1S2fT8PNen4YFHTCvgbI4ty+TojjbAWJo LiJqOR+ziV/794LSsRkH/lqAH7PxXHhPN86meTICDbKi7TPlMAn43ThW7NPfM4mE1xtg kBjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715530032; x=1716134832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jIpksEoXqQi2l+tKH8hoZ5+HJZT92LIkJSjjEsXZRgo=; b=fgcAEkRYmQv7oD1dAg2fMb1K7hzPB6bTQ0CXKPV/LNu0Bvn8RCKAhcDWaASEi861NZ 8uuCwhTGOdEbdJrJ3yFbPxX1Lg1lDmNij+mbcoX5e2APn+VKoiqqU9umeJilMnAVkNZB IKfoX0OcQO28el5zMaTG6cNubH++QboB1ms8SHxalZLgXcugIo8XCMxbtCnlVBLbQREJ PCuFcfyChTT7JH4QhHpRCCge6IE7oswvuZvNCipjkrCQdQOufYC3mabbWN5qROrjFG11 wWMMCegOZYAkINGSfZgLwULjvt9X7Wb/L/DYcGGZZxY7GuKcpFDPCuqQQXp6333NH/8X JuOA== X-Gm-Message-State: AOJu0Yyy8Mno0Vgjl3aTSgUmVzTBgf5mJOafVYvB8nyvaQMY9h34eea0 2QDoObfE/OotXWwJP7o2bb6dVGpBGhMNNIn5XJie+YqYIlxJd47/ql3kOg== X-Received: by 2002:a05:6a00:4f86:b0:6ed:2fb8:467b with SMTP id d2e1a72fcca58-6f4e035918dmr8881288b3a.26.1715530031602; Sun, 12 May 2024 09:07:11 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6341134705dsm6274574a12.85.2024.05.12.09.07.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 09:07:11 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 13:06:54 -0300 Message-ID: <20240512160657.2733-3-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/8] checkasm/flacdsp: add a test for wasted32 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: yTSzm2QRO/oD Signed-off-by: James Almer --- tests/checkasm/flacdsp.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/checkasm/flacdsp.c b/tests/checkasm/flacdsp.c index d694c1093b..343bee41ed 100644 --- a/tests/checkasm/flacdsp.c +++ b/tests/checkasm/flacdsp.c @@ -83,6 +83,27 @@ static void check_lpc(int pred_order, int bps) bench_new(dst, coeffs, pred_order, qlevel, BUF_SIZE); } +static void check_wasted32(void) +{ + int wasted = rnd() % 32; + LOCAL_ALIGNED_16(int32_t, dst, [BUF_SIZE]); + LOCAL_ALIGNED_16(int32_t, dst0, [BUF_SIZE]); + LOCAL_ALIGNED_16(int32_t, dst1, [BUF_SIZE]); + + declare_func(void, int32_t *, int, int); + + for (int i = 0; i < BUF_SIZE; i++) + dst[i] = rnd(); + + memcpy(dst0, dst, BUF_SIZE * sizeof (int32_t)); + memcpy(dst1, dst, BUF_SIZE * sizeof (int32_t)); + call_ref(dst0, wasted, BUF_SIZE); + call_new(dst1, wasted, BUF_SIZE); + if (memcmp(dst0, dst1, BUF_SIZE * sizeof (int32_t)) != 0) + fail(); + bench_new(dst, wasted, BUF_SIZE); +} + void checkasm_check_flacdsp(void) { LOCAL_ALIGNED_16(uint8_t, ref_dst, [BUF_SIZE*MAX_CHANNELS]); @@ -126,5 +147,8 @@ void checkasm_check_flacdsp(void) if (check_func(h.lpc32, "flac_lpc_32_%d", pred_orders[i])) check_lpc(pred_orders[i], 32); + if (check_func(h.wasted32, "flac_wasted_32")) + check_wasted32(); + report("lpc"); } From patchwork Sun May 12 16:06:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48820 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp647280pzb; Sun, 12 May 2024 09:07:52 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXPNOxcd/S9H0gHFPTJ1DUKR3UvKi0OfnUY3/u+anPEN/wrxVxcq6S5zm9M0tP/e6A4PUUY29DOhgfBdmb6m3djrII0gt4urFeBMQ== X-Google-Smtp-Source: AGHT+IEJXINiF1RYKYZeOnpsyLEHrO8KNSgt4e1W4i0YQp0rSMRYEbLFmjuUro4LiMEsMHWtCivT X-Received: by 2002:a50:cd97:0:b0:56e:603:9fc9 with SMTP id 4fb4d7f45d1cf-5734d597e37mr5574169a12.3.1715530072067; Sun, 12 May 2024 09:07:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715530072; cv=none; d=google.com; s=arc-20160816; b=OGlPmM1XNPCuW24AlgBuuZnrxMBjxL4pP+4zLBpJD7qcxvpW0etsNWZyj02xk1VIqT b4PVCNYhy2l5HhypEyxtIwDrhXcTTpbBaq5jxHI5Tgla0t5xB93IczqkiSffrbnYz2pt VrpG0+Q/3w2mvi4r5kYOSGwwzV9ZZsQmrNwgCUl7KnRtI+0+WokwYbC5pIHgqzx7TY6G 5znEehKXa1sb9TribSigIFm+6qU7H64jcQ/Wfn+5WnM4SrU6ZNTORDlZ1slVFHtKZQVK HhbZUQ73pzDcSjOcjfutBilCUqQjNL3E1GEZ8l+ETgPWIqOW59dd42m7aZ0KCoraJp6c uTvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=AoKVUFliZVYLw3zphDpYx3xmLRXUwqtTco3EEqvS6go=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=xR2EqcBw8T399tqjnACXhOO5/7xliYwJj2hsdQb8tQwVkXkZzfHvAFthpbFp7NuptC XQTmQf20Un5gbx9TdbQScnt74BqJBkBrL2tBZ42LUMZdpP4+69KP9+hD26D7iRp+Bnuw //NfhdDLzqz25f5GOOOGz8wOFXxTTv5qczFqHRBDE8ROgRBtQrG2kqJGg/rUrESwh1eM n2jXVPtPjnPIJFVfSKyfCPujyQyXba3TKyzZCbrjQb0cctvn0DfDcrHuuHuOlpcLt/aP w6gFKOFaegvk5iT12QFUTqwIrnm6BAiIgL21fGck6Ol01hMw0Zm6/gqOzUEHfx3IgPIT r3Ug==; 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=M3i3MmCx; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5733c32d28dsi4367449a12.470.2024.05.12.09.07.51; Sun, 12 May 2024 09:07:52 -0700 (PDT) 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=M3i3MmCx; 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 1A50268D670; Sun, 12 May 2024 19:07:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B175D68D62A for ; Sun, 12 May 2024 19:07:15 +0300 (EEST) Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-6f44b390d5fso3061368b3a.3 for ; Sun, 12 May 2024 09:07:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715530033; x=1716134833; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=S9+YRyZAG3kiHG4A3PI0eM47oAXZ2AAgSjr3rHicI14=; b=M3i3MmCxC05JSCZ3S+5EeM9YwHbFmr6rxq1Qc9x1YRGAtXn+ROuOEU4n4OHUdyrfnz 7Xz9N98Mt3EEjbule3FP+d05Bq6svuKZ7hdELMStglUc9j0l9xuCQ4No985IvmAkCkto VA1rfp7g+N08b6nZuezS+DAqWkqrTrDAcjoZ8pT7grqzEEHemAnf/lbcKSUHPwQxLngp f5Eyqp+LdtJQGfiBvFtVlTpqR31mhSF2nw3TQyn3K5fkDCh0G+KXgc+DmiGnJ1Wi1H89 OLZ6lE9Y96kmaLdrYzv/ZL7p+TQPqki/sS7iK7GB/y5S0a9CG61gAZ6HzEXrrgjzodYA zVuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715530033; x=1716134833; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S9+YRyZAG3kiHG4A3PI0eM47oAXZ2AAgSjr3rHicI14=; b=WHGABrYQSob5RfxYSP8WAaPNfm6kyopSL/k4ruFjSwfCUUPQUQuPlufb4a0VWO3zH7 ZHYMq4jO4isC1Cv39iTM+UhKIQBdDptcEUTn3eZMu/E6XXKTaT5Aw+/YXRBBr4snOAu4 y1rrlsqPIk1QmVio9TDTfaF7KRvO2ZQQDqYQODLwpU6QIS8ONtv4j7t6w4H/l+x1q0kn 8FZVAeaqwNYIR5dbV2KQNbBniawaV8DuSS81YUDHmU1rrPWtEqnaIe56+O8hoI2VOZCT ZGLE+fynZu81A1eIr3XCQMdKFv0cUVtREArfERylNdUWAoNGrg2cGgG61DGs2a5TKSoU AbHQ== X-Gm-Message-State: AOJu0YxA/lE+E5spggslMp6ZzRu0BgiKTb3RzRBZ2ACM6i3za0NU8vUN gCnwte2Sei+l1IvypMOCTBG+moH60poZ8iavnwrIcN0OeYs/DxvdGSt64A== X-Received: by 2002:a05:6a00:2191:b0:6e6:843f:1d05 with SMTP id d2e1a72fcca58-6f4e02f6050mr11233513b3a.25.1715530033125; Sun, 12 May 2024 09:07:13 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6341134705dsm6274574a12.85.2024.05.12.09.07.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 09:07:12 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 13:06:55 -0300 Message-ID: <20240512160657.2733-4-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 6/8] x86/flacdsp: add a SSE2 version of wasted32 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: 9bGqi84dpWeQ flac_wasted_32_c: 851.3 flac_wasted_32_sse2: 53.3 Signed-off-by: James Almer --- libavcodec/x86/flacdsp.asm | 15 +++++++++++++++ libavcodec/x86/flacdsp_init.c | 3 +++ 2 files changed, 18 insertions(+) diff --git a/libavcodec/x86/flacdsp.asm b/libavcodec/x86/flacdsp.asm index f38eb7db76..3a940059c7 100644 --- a/libavcodec/x86/flacdsp.asm +++ b/libavcodec/x86/flacdsp.asm @@ -89,6 +89,21 @@ LPC_32 sse4, 32, psrlq LPC_32 xop, 32, psrlq %endif +INIT_XMM sse2 +cglobal flac_wasted_32, 3,3,2, decoded, wasted, len + shl lend, 2 + lea decodedq, [decodedq+lenq] + neg lenq + movd m1, wastedd +ALIGN 16 +.loop: + mova m0, [decodedq+lenq] + pslld m0, m1 + mova [decodedq+lenq], m0 + add lenq, mmsize + jl .loop + RET + ;---------------------------------------------------------------------------------- ;void ff_flac_decorrelate_[lrm]s_16_sse2(uint8_t **out, int32_t **in, int channels, ; int len, int shift); diff --git a/libavcodec/x86/flacdsp_init.c b/libavcodec/x86/flacdsp_init.c index dee4bf88fc..67aa118760 100644 --- a/libavcodec/x86/flacdsp_init.c +++ b/libavcodec/x86/flacdsp_init.c @@ -30,6 +30,8 @@ void ff_flac_lpc_32_sse4(int32_t *samples, const int coeffs[32], int order, void ff_flac_lpc_32_xop(int32_t *samples, const int coeffs[32], int order, int qlevel, int len); +void ff_flac_wasted_32_sse2(int32_t *decoded, int wasted, int len); + #define DECORRELATE_FUNCS(fmt, opt) \ void ff_flac_decorrelate_ls_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \ int len, int shift); \ @@ -63,6 +65,7 @@ av_cold void ff_flacdsp_init_x86(FLACDSPContext *c, enum AVSampleFormat fmt, int int cpu_flags = av_get_cpu_flags(); if (EXTERNAL_SSE2(cpu_flags)) { + c->wasted32 = ff_flac_wasted_32_sse2; if (fmt == AV_SAMPLE_FMT_S16) { c->decorrelate[1] = ff_flac_decorrelate_ls_16_sse2; c->decorrelate[2] = ff_flac_decorrelate_rs_16_sse2; From patchwork Sun May 12 16:06:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48821 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp647368pzb; Sun, 12 May 2024 09:08:01 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWqO5T4UqWQUhxy6dFhEaCEqKz91i1ugA1xi8nqlD1A5ozJ4aAqvyHGn5W+Y/DF4R8aCnifP88MI7xTVTgiGGeEq8tZXtPTufZFUg== X-Google-Smtp-Source: AGHT+IGRYb656q2OeCptJ+vJhqTWcqy6v7tit2LPiEhwNCdVfc1YnN9VETYS9gDoJKVZmRRF5zNf X-Received: by 2002:a05:6512:3ca4:b0:51d:67a0:2433 with SMTP id 2adb3069b0e04-52210074979mr6095945e87.46.1715530081410; Sun, 12 May 2024 09:08:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715530081; cv=none; d=google.com; s=arc-20160816; b=eGzPBaPg6IQBT/U2oXzOajDZsHWs4XjDeYFu2RwiFOHs8+PU/UBJSjGk2pC+C7jJH8 N5ihHE+kZY9gSjXdk9PrwCzbkdQFB72ECENFWl2jZwHZ5XZHLLwxMvKJDdo/dZGvpU+1 C/ZBYXgL946cl1SOD+1XoCBOLvjO6JkGZGO4rQH5qDgVL9zuxSmFdkpmmb+nA7/JPQ2M zGZVCPiDhrERtk257QrMOr2AoW1MRC3VdiRYuInR6N2NeNM1goYCIJGs+vzbZTYuwSdH lqsT4RSma0ekrP6SDITwkMlkpP6mHJ7hesswjBbSpFM5YPHn5EOwEA+2LzZ/iOyfvwra ftqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=dNLZw4ErbQM70OYoUoUf7ExiPk4/05W44tCjrhPemFM=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=dX+IXOZpw612vwCvbhcXYUdAwzy2A7qavvk655cpwcLZgYEfL0YykwsYU2GaVUc34u V2hgGu83mnL5R6IQne8kjFNbKMOVJJ2xp7JNTdosxnoJaDwoUzi4EUZjMe+TqrTyjFx1 52QwNGId1I1AvvxDugDCGB7LjxeYxetTxu34o/lHfWAhpUTeE1dHcevCdtzCvuN+/GEi vQ69ANmIljr/8+Ubp34hbCjblbaA3H0cnThxGCLRcuxhG56NQ9t5qZJW0Yq2EaUN9QFY uqOcpkttZ0RlAgmX5FfMF+c/uEu6hoJyCOwj8Vd3qZbBUK8EM/3rijINI009Tfmb304n 8yEA==; 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="VAj3A/Cu"; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a17c2c64bsi415333366b.932.2024.05.12.09.08.00; Sun, 12 May 2024 09:08:01 -0700 (PDT) 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="VAj3A/Cu"; 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 57E2268D694; Sun, 12 May 2024 19:07:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0F99E68D66C for ; Sun, 12 May 2024 19:07:17 +0300 (EEST) Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-6f449ea8e37so3079547b3a.3 for ; Sun, 12 May 2024 09:07:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715530034; x=1716134834; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=06vbCP0tad7RElvgsmP29MKx+mWCURG304vKKQdT9kU=; b=VAj3A/CuVJy+8k4f2SpSaiDytfRlVKoMUc+PB6iJ5lCbJvAXilRsNitDS0AhLlHfTv dkGC85LX6VnTUL3929UlNNpZeCY0UAeoGXiCkfU3du0KM7bi8ci0QullK12+tU67gs2y UeL8AKo+NaLMSbIyMy/mhuKex1ML82J/74Q91qoKkVWUCDcSiCU6lpyrlUDMCp+4VWR+ R+V/RVanz0zwimXCKo6aHihXpqmrjaI3qELSSFzqSP7CgbHFEdMYZhP+b0PoPuPMmvWH M0UtysLGMoFs/9goya860J3Ijvn9wYrJ+219yf6lnDeTjQ+8nY+canKTeVFsu66lDl7i 1GKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715530034; x=1716134834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=06vbCP0tad7RElvgsmP29MKx+mWCURG304vKKQdT9kU=; b=Ovq/9MLHvJCOHgO0q7tFaiYhf7AtLGWAm2AxEDOvX6QQe2R8vrVQf0W7rRiDREQoLk x9qHxPrGARY1One1MhG4cT1CW5Ldx7UsiktZwc8LVEiUtyT718JM4xj2EsoWeVe3TaKo /Hn5eKN54eFEcFiLnzapsj+8fDnXc+mAosYOF3jYfgsvVYftxZjWykzikv4j+ChaZzf4 EJuKkjb2lo8lnBCr5QGAs431Sn4ZvqXioKYqcJ8V8zhEYHkOQR4bRI4EN7RpkUM3Pvs0 J1a2EcetzY0dYzrRKIpDn2Hti04wjktpgK3Z8B3Z+360S11MRR+6RgF2ReUk/pPW68lw h/jg== X-Gm-Message-State: AOJu0YxfmCcOw1K2G5NF8+pOB7c50Q6LrLG86XTqgR75ulRhEx3f2zst erotCscu539zvwfCRXz04b+M/H4E01avyhNbjrlSyqnjmovZGWb7d+S2zQ== X-Received: by 2002:a05:6a00:2195:b0:6ea:b48a:f971 with SMTP id d2e1a72fcca58-6f4e029a2e3mr12980671b3a.2.1715530034562; Sun, 12 May 2024 09:07:14 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6341134705dsm6274574a12.85.2024.05.12.09.07.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 09:07:14 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 13:06:56 -0300 Message-ID: <20240512160657.2733-5-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 7/8] checkasm/flacdsp: add a test for wasted33 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: mS0/VSZSkcI4 Signed-off-by: James Almer --- tests/checkasm/flacdsp.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/checkasm/flacdsp.c b/tests/checkasm/flacdsp.c index 343bee41ed..6abdd255a3 100644 --- a/tests/checkasm/flacdsp.c +++ b/tests/checkasm/flacdsp.c @@ -104,6 +104,25 @@ static void check_wasted32(void) bench_new(dst, wasted, BUF_SIZE); } +static void check_wasted33(void) +{ + int wasted = rnd() % 33; + LOCAL_ALIGNED_16(int32_t, residuals, [BUF_SIZE]); + LOCAL_ALIGNED_16(int64_t, dst0, [BUF_SIZE]); + LOCAL_ALIGNED_16(int64_t, dst1, [BUF_SIZE]); + + declare_func(void, int64_t *, const int32_t *, int, int); + + for (int i = 0; i < BUF_SIZE; i++) + residuals[i] = rnd(); + + call_ref(dst0, residuals, wasted, BUF_SIZE); + call_new(dst1, residuals, wasted, BUF_SIZE); + if (memcmp(dst0, dst1, BUF_SIZE * sizeof (int64_t)) != 0) + fail(); + bench_new(dst0, residuals, wasted, BUF_SIZE); +} + void checkasm_check_flacdsp(void) { LOCAL_ALIGNED_16(uint8_t, ref_dst, [BUF_SIZE*MAX_CHANNELS]); @@ -149,6 +168,8 @@ void checkasm_check_flacdsp(void) if (check_func(h.wasted32, "flac_wasted_32")) check_wasted32(); + if (check_func(h.wasted33, "flac_wasted_33")) + check_wasted33(); report("lpc"); } From patchwork Sun May 12 16:06:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48822 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp647474pzb; Sun, 12 May 2024 09:08:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCW+FXlvvy8ucPxViLUtONbIwtUqAGCe2YpQ/B1dDU2xtq/1GrwomKTm5CTKneAUUVfA7X+i8dUvjxFVIXIc7fZz18FiKbUjeNAWWw== X-Google-Smtp-Source: AGHT+IEKqliUMAwXe0AAn/G+to2+/2mG2bxZmDLUNHq3m6GRtriUG5InkPKyPfOl/w190q1owFqY X-Received: by 2002:a05:6512:158d:b0:519:5df9:d945 with SMTP id 2adb3069b0e04-5220fb77429mr6920207e87.4.1715530090768; Sun, 12 May 2024 09:08:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715530090; cv=none; d=google.com; s=arc-20160816; b=jhPlM+JvoIz68zQTPJk4MjrfhXxbOWlVE0UxnyiTOQBoXE/umytDetqW3DK0M9EpeQ MZ5EpbpftRbvLM4ufbx9kMCByn8dC1N+c9CR3dKlgw5mVLuzwrYSQaawM2Uq6UszrgMC f0rM4KcyMiSzbebN3AejEYaN4+oV/XH4lirZryNR0okuHNXhUuoDOdycQjmLThoYgv6N 0/7ACOFBfdfw9HtbaITDCJXrGgTOeW1QfZw24p336rxowY2VQy7TSDuCfSakFqI2vIiW xFFoF8VzFDHKR4HWHwHiA+gskS4ZND2aSTPsRW8K3x1JTYOJNRoTPsO9e2ekYmWMCeSy BW0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=/Lf2oLTQVfgPjPrA2Q/5+WP0lESDxR2uXwGLRGVsuFM=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=YORNI9PXXE7suk8pOP2H+d4fCxDunAH/wYbubnH3XcWW+VaLElsDy3gSnatqlr7vG9 UxXC6hiimjEcnndu/8IHlXpYWNQn2bET0dRTDslRl238jLMPgHoTKIELStzsJ28DJUYW Irz/4aCKgvIHnEFJrigy8cTHXSjAyatYjL/kLyj9tI1bCeE+Fr6mBB/QEK+0Kn5as09a 4WXQQqO7DRFA6Ew2XJ/ZHY64fm4QFqKf8znrGbk1D9fSw/pg+mW3aptPKPIEkmOH+RVC xPMjgVhkiAFzbwQkyeGuCO7wXfif8bLoOsI7jbuI3MJPFWJuKZT0AaKL437fxl+FFzp5 9MMw==; 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=hCcXssmj; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5733beacae9si4100696a12.93.2024.05.12.09.08.10; Sun, 12 May 2024 09:08:10 -0700 (PDT) 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=hCcXssmj; 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 8CFDA68D698; Sun, 12 May 2024 19:07:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7DA5968D695 for ; Sun, 12 May 2024 19:07:19 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1eb24e3a2d9so32214215ad.1 for ; Sun, 12 May 2024 09:07:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715530036; x=1716134836; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=98YIqaEZehxmyf5s+R32jvvb12I0Gl8t/1oj584CJNI=; b=hCcXssmjKR9sYkkv6xorC+2PkKucxpTy7unqfmovqpGRK+jwohi8P0oeP/WZu70OnO 08q3GgP9Hqo5wfuQnfFqF8LR/wTX+PA2td8/bLinlGyUYSvy4PNjghLXp4WzCMzL+ynr KEjr6oo1QVV9lfSPMzktG83SCX880/HFS6sJCE4h+rCmwersLPifP0oWu+bFzhJ6w70i 0TLti0IKtKl4L3xBl4R9l3n3eHvs66yVJSAmugFg0Dgn8Jkj5VHv3MfbmWd0YDRpDDqX OHQSK7KBFOon7yUylKI1Co2zYSB2cVHoHII6kYYYFQwSqpLZGR/5yi4CebBnOf6Y933m Pxmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715530036; x=1716134836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=98YIqaEZehxmyf5s+R32jvvb12I0Gl8t/1oj584CJNI=; b=V/Z4CBDD90h49Y0wV0RFKf9bXrjBo9pViFq6ywLM17Cm5ke4GNM/ZdKbvH3FAeXCoQ r8CnAEDmRfIU+GFlVq9zFT/zZtn77olP1MR2OBecTdZLeOivSFeiGei4B8oukaLL5VIV XaNX6bc/IOQkGV9WFrM0yq+zZ3+dZaLEu/AC9u6uogfNQ57rwRysBdtWSUK1oVJkNo/K FZgz7WZRAONhjIb/KKkIB3K04WJlkXtB2kWulISF9PI9bImn4kE7UjcOrLwk9W9utIFJ cbCIUMD9BTcy8XAJsgdriuSL84RtAvl7xJdS2xAy+lhjyREBzUGt7uMilVRFIl/PgODR F0gA== X-Gm-Message-State: AOJu0YyQINVWNNYAaItyQlEBH6UVdQutgUKxnbgfXNNm6ohDrEJz3FbE 9A3xwnOTdiuGZLLEJdc8giY6I/5TvDW4G8DlhbNoJrIASMmv6oFAuI/mLA== X-Received: by 2002:a17:903:8c3:b0:1ec:4adc:4153 with SMTP id d9443c01a7336-1ef43d125e9mr124269805ad.24.1715530036510; Sun, 12 May 2024 09:07:16 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6341134705dsm6274574a12.85.2024.05.12.09.07.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 09:07:15 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 13:06:57 -0300 Message-ID: <20240512160657.2733-6-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 8/8] x86/flacdsp: add SSE4 and AVX2 versions of wasted33 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: ojV+BJLgHgU9 flac_wasted_33_c: 214.1 flac_wasted_33_sse4: 133.6 flac_wasted_33_avx2: 93.1 Signed-off-by: James Almer --- libavcodec/x86/flacdsp.asm | 24 ++++++++++++++++++++++++ libavcodec/x86/flacdsp_init.c | 6 ++++++ 2 files changed, 30 insertions(+) diff --git a/libavcodec/x86/flacdsp.asm b/libavcodec/x86/flacdsp.asm index 3a940059c7..84cd4dd465 100644 --- a/libavcodec/x86/flacdsp.asm +++ b/libavcodec/x86/flacdsp.asm @@ -104,6 +104,30 @@ ALIGN 16 jl .loop RET +%macro WASTED_33 1 +cglobal flac_wasted_33, 4,4,2, decoded, residuals, wasted, len + shl lend, 2 + lea decodedq, [decodedq+lenq*2] + add residualsq, lenq + neg lenq + movd xm1, wastedd +ALIGN 16 +.loop: + pmovsxdq m0, [residualsq+lenq] + psllq m0, xm1 + mov%1 [decodedq+lenq*2], m0 + add lenq, mmsize / 2 + jl .loop + RET +%endmacro + +INIT_XMM sse4 +WASTED_33 a +%if HAVE_AVX2_EXTERNAL +INIT_YMM avx2 +WASTED_33 u +%endif + ;---------------------------------------------------------------------------------- ;void ff_flac_decorrelate_[lrm]s_16_sse2(uint8_t **out, int32_t **in, int channels, ; int len, int shift); diff --git a/libavcodec/x86/flacdsp_init.c b/libavcodec/x86/flacdsp_init.c index 67aa118760..22482f8787 100644 --- a/libavcodec/x86/flacdsp_init.c +++ b/libavcodec/x86/flacdsp_init.c @@ -31,6 +31,8 @@ void ff_flac_lpc_32_xop(int32_t *samples, const int coeffs[32], int order, int qlevel, int len); void ff_flac_wasted_32_sse2(int32_t *decoded, int wasted, int len); +void ff_flac_wasted_33_sse4(int64_t *decoded, const int32_t *residual, int wasted, int len); +void ff_flac_wasted_33_avx2(int64_t *decoded, const int32_t *residual, int wasted, int len); #define DECORRELATE_FUNCS(fmt, opt) \ void ff_flac_decorrelate_ls_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \ @@ -100,6 +102,7 @@ av_cold void ff_flacdsp_init_x86(FLACDSPContext *c, enum AVSampleFormat fmt, int if (EXTERNAL_SSE4(cpu_flags)) { c->lpc16 = ff_flac_lpc_16_sse4; c->lpc32 = ff_flac_lpc_32_sse4; + c->wasted33 = ff_flac_wasted_33_sse4; } if (EXTERNAL_AVX(cpu_flags)) { if (fmt == AV_SAMPLE_FMT_S16) { @@ -117,5 +120,8 @@ av_cold void ff_flacdsp_init_x86(FLACDSPContext *c, enum AVSampleFormat fmt, int if (EXTERNAL_XOP(cpu_flags)) { c->lpc32 = ff_flac_lpc_32_xop; } + if (EXTERNAL_AVX2_FAST(cpu_flags)) { + c->wasted33 = ff_flac_wasted_33_avx2; + } #endif /* HAVE_X86ASM */ } From patchwork Sun May 12 20:36:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48829 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp738773pzb; Sun, 12 May 2024 13:36:40 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXodge6UvOlFfDN8mEAa2Ibo6Xg1AyJJ21HNs6ZIjmwCN63MsLUy/YUPOQ947G4EokG6gnvrLAxGaNm4rkbiv4dwIzMjF1IUp4yBA== X-Google-Smtp-Source: AGHT+IHLqr5rW8j6sKNhi1n4FdwCRzoVsRPG5t0o34Ahg/NpnReIbdNucpDuhRC9X9Al81pkbVLm X-Received: by 2002:a17:906:da8d:b0:a58:ea85:9114 with SMTP id a640c23a62f3a-a5a2d672fb6mr658720666b.50.1715546199957; Sun, 12 May 2024 13:36:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715546199; cv=none; d=google.com; s=arc-20160816; b=HpifjrXcz4BlSCck9fn5HQktc5RuSvXaZg9Ri4jw0pO1Gxa7b7L2rA5M/20E11Wxqs oa2pXJ/4GtZdcdzIAhqnN+azHUosb1wNArldJut/0T610IxR2jIWQr+WxY5COipHyn7l ZW1jCnFr3wHmHAbLiGGnCaUPiNB5g+A0dIuNVLqEYt7CgFj8mKwvf3RQm/gkILT6sGSr YDJpdW3mcU+cCVQemMPYA/fRJPqklGlaE2uy+/JVvTePwulkM4X8nrhAhFfaHa/DNsFN LvSsELVSuEZ7TKV0D3gpOD7t35IwWLSSlmY34TaOdTrcINT/GTGjnMfsiTpwQ8+J2BKG pydA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=+/4Ccn1V6ayd41hlJtGAw+iAkznAfYbNC8D6pO9OUXo=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=F8+nHxcPz652jVZNn8CYjujpT2I5d1oChVGKhdXpmy8Yx7qYl0/abaxmIjMH0cXzqf f0YHDFaSazHbB5LAPiL6433v4HblEMa9+NOlJAKj++oFdwpduxkBpV0sumjqNDZaxOmA D5XV083v+qqkJiN7+A7RJ3U6JIXCgxdpUCP6CPAexF63Nmco/e9I/x4H7qk3fJvCTWX6 toxjPos28tY1qkeqm1fPrZd0XvDUOTNXNqhcKfONHt+afR9GCs9bl901+HiApHSjlAaZ xAstZChUD9FkVUKakCsQmt35lmpeCqoWJBQhujFWpsivKUVKODsPOv+oS3UvBml6i4tq ZoMw==; 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=Hn9oqLzp; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a17b21e84si432366566b.393.2024.05.12.13.36.39; Sun, 12 May 2024 13:36:39 -0700 (PDT) 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=Hn9oqLzp; 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 C3F5E68D6C3; Sun, 12 May 2024 23:36:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7C07568D319 for ; Sun, 12 May 2024 23:36:29 +0300 (EEST) Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-2b3646494a8so2899645a91.2 for ; Sun, 12 May 2024 13:36:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715546186; x=1716150986; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=nMqwTcIwAwDDjHELONt5l1pO/keqOpF9r/Z0oLDpvwk=; b=Hn9oqLzpcNMZEpX4+sB6wxxt4825VA1b6GBCHy3o2LzAvi4YQeYL5lYjOzkbAhYwYk qXj6s6EdmrChifqBD5HHH6dhjBty4cqJpi2nd+5bCZInQ+maMg6PKlKKJsq4uzgKpHPO 0IEfGlrn+fvZHkTsYgEme+rI+bokK8flkEkN9RKQ+GrptPc4cvod0QMvryzlPEra3Ame sOfbhgxmXeqrLbzLGKCsEJ7NCCI1v4r3H2g97AHZl8+lhQCrUFzKyJeC7TtYEl5ykKuE BvoqTeBiOJFA8xDv8B8UvCy8FLJD50SOLSNpPOBOvcgMvkGXCntyNZMyhy/oPC+wV+/6 W23A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715546186; x=1716150986; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nMqwTcIwAwDDjHELONt5l1pO/keqOpF9r/Z0oLDpvwk=; b=FLDM75K69fYHv0LgEOH5l4JdzdrRcqzx0ruEU7NMVrHBsO9LeFjL1rahmWvHwGoPpe IlT6QJAl+RC0E90hp2nDUL/mYzBnjADPNwVl1nk3bcNySpJWXaHISNY6Mlo2acFcTvrP 7QXXq2HApfXpqDR0NK0Y7hDNgjhVHxXs3cTiIewl+kXPmEZLcP4v9/rYWin+hG5h1d3H LsJmdA8wFZKcwEHUX22/zQwztR285Wejf9mRs1n0+rDaWAADWkjVUTWVqD+KVNgnR1Jj ILuGzhWQnbcM9R3Wmon1Oleoyac0k1cyy+2GLqJn1uLqaBLeIdq9YUrPq38X1wV3OHkU staA== X-Gm-Message-State: AOJu0YzVvHEiks2rPLDB7j7hbujB0wrqtS2vRDOeCgTMTXCsKkIOLcli OqMe9MeY4E427PW9dN1JN16IrKLU8Q9fkdeGH1a8k1CqXqBK4IxrA4/2tw== X-Received: by 2002:a17:902:d483:b0:1ed:867:9ea0 with SMTP id d9443c01a7336-1ef4404a894mr92595035ad.57.1715546185553; Sun, 12 May 2024 13:36:25 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ef0c136843sm65912175ad.235.2024.05.12.13.36.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 13:36:25 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 17:36:10 -0300 Message-ID: <20240512203611.60371-1-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/10] avcodec/flacdsp: split off lpc33 into a dsp function 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: xm2iSmsl+sXk Signed-off-by: James Almer --- libavcodec/flacdec.c | 7 +------ libavcodec/flacdsp.c | 15 +++++++++++++++ libavcodec/flacdsp.h | 2 ++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index 6e6a2896b4..460d3bc01e 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -509,12 +509,7 @@ static int decode_subframe_lpc_33bps(FLACContext *s, int64_t *decoded, if ((ret = decode_residuals(s, residual, pred_order)) < 0) return ret; - for (i = pred_order; i < s->blocksize; i++, decoded++) { - int64_t sum = 0; - for (j = 0; j < pred_order; j++) - sum += (int64_t)coeffs[j] * (uint64_t)decoded[j]; - decoded[j] = residual[i] + (sum >> qlevel); - } + s->dsp.lpc33(decoded, residual, coeffs, pred_order, qlevel, s->blocksize); return 0; } diff --git a/libavcodec/flacdsp.c b/libavcodec/flacdsp.c index 27d3e923ee..f5362bf66f 100644 --- a/libavcodec/flacdsp.c +++ b/libavcodec/flacdsp.c @@ -84,6 +84,20 @@ static void flac_lpc_32_c(int32_t *decoded, const int coeffs[32], } +static void flac_lpc_33_c(int64_t *decoded, const int32_t *residual, + const int coeffs[32], int pred_order, + int qlevel, int len) +{ + int i, j; + + for (i = pred_order; i < len; i++, decoded++) { + int64_t sum = 0; + for (j = 0; j < pred_order; j++) + sum += (int64_t)coeffs[j] * (uint64_t)decoded[j]; + decoded[j] = residual[i] + (sum >> qlevel); + } +} + static void flac_wasted_32_c(int32_t *decoded, int wasted, int len) { for (int i = 0; i < len; i++) @@ -101,6 +115,7 @@ av_cold void ff_flacdsp_init(FLACDSPContext *c, enum AVSampleFormat fmt, int cha { c->lpc16 = flac_lpc_16_c; c->lpc32 = flac_lpc_32_c; + c->lpc33 = flac_lpc_33_c; c->wasted32 = flac_wasted_32_c; c->wasted33 = flac_wasted_33_c; diff --git a/libavcodec/flacdsp.h b/libavcodec/flacdsp.h index 5a59c0c864..3b7b35a112 100644 --- a/libavcodec/flacdsp.h +++ b/libavcodec/flacdsp.h @@ -30,6 +30,8 @@ typedef struct FLACDSPContext { int qlevel, int len); void (*lpc32)(int32_t *samples, const int coeffs[32], int order, int qlevel, int len); + void (*lpc33)(int64_t *samples, const int32_t *residual, const int coeffs[32], + int pred_order, int qlevel, int len); void (*wasted32)(int32_t *decoded, int wasted, int len); void (*wasted33)(int64_t *decoded, const int32_t *residual, int wasted, int len); From patchwork Sun May 12 20:36:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 48830 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp738826pzb; Sun, 12 May 2024 13:36:48 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWMMx7PJ2Sq2pG6TDg/sT6MArdRF/cMNDrBGqL4hXXPzIMfxKHyJ7YXpmSseSr0Kolu1p7lnq7N0aeDh0zCgbV9WBn5G29tql4AKg== X-Google-Smtp-Source: AGHT+IHcC2ralOnoO1R4y39omGW8hLnR/WIeFIozEs23c9DcNSMaVKbW0c5GsBXwXpfT7fsQB2is X-Received: by 2002:a17:906:310e:b0:a59:d4f0:cfc3 with SMTP id a640c23a62f3a-a5a2d673076mr554813366b.59.1715546208588; Sun, 12 May 2024 13:36:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715546208; cv=none; d=google.com; s=arc-20160816; b=As6Bs1u7g47yd1VUFa+J664AGORwpvKtEMxZPs1KwlP9zLRpLz5NH/wj2d9BW7JnyY +yvssycs2YA4mmDQ25iyl8s1bmZz6BolUkBbMrz8kfIU0omNIzgp3OiSymKcApMpSdHW OZXNFRKzv8s54X1SqUewwRfMRcw+AL70dCANoJMGHEh4yABUiK7Gmg5JqA2JwamAzG0z /OnsN7ZZXjiFpilxsvauILvvnOl4a/0zsueFvMoMMxS5YjxKuJOgzirQmUVtzq2OnBel Xdgr9oUm3LfLJHgBL5K9rAetuAqqNegy6FqNw6CzdF+19rC3kmQrjAg6xS1EU+6rHmc9 BPFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=CqchT6x8bAmqWlr/QfKB3ARLb5J5iiR5yCeAd1v64G8=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=lgD1WuSybKAfE2fCqGpCkvTyG8syfZbnyqaccU6xrVC085dycScdlxPmyw1UXv3l0A xTQFU0+ZweYkv43Gi1E0p7EX6ZxBoN097EJLgI3rzhHUBJebuNbZMdzvI28pJcSMiQjn Ph0e6pjFrbAelDXdqfNMGRQU2A6KSMPSVI6PhoMD2YrjrLQBU982FLI+QIJZVntLylag F8f1vs/ujO+WzF5M3Lro2dL+AdiIu4YqzlnBYxIWxdZANvb8UlJ04NMVsVLvAKV5/Lhg fie9e5IrsukMwZ2Tus9QJXtf8hoVZnQIrKW9C10wg0CIX9fQuUqKhinLtk+55d3I5kpb CLiQ==; 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=lfS7fxzI; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5a17c2c4d2si438472566b.1018.2024.05.12.13.36.48; Sun, 12 May 2024 13:36:48 -0700 (PDT) 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=lfS7fxzI; 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 0220168D6CB; Sun, 12 May 2024 23:36:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F27FA68D319 for ; Sun, 12 May 2024 23:36:29 +0300 (EEST) Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-1ec4dc64c6cso25263915ad.0 for ; Sun, 12 May 2024 13:36:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715546188; x=1716150988; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=laJx40oybFRppPE4yBEpuD/YMY+I/UssA712dWltTXo=; b=lfS7fxzIVWOJaB4QtdFwOnmh2XWbUmHS/BwrFgNR4KW9vT7ZB+NCi5HH5l9Rqa5mx3 F+9poCJ16fYrnQqTrzCT/s5aLXq5rhzAD5dVfhfZ1XiV390+FUkZq0xBRYiP8jnpcBI/ b+QMfCDngJZ6zjZMQdaY6eFY45VUnJsr+opjkolUbb4wLigu2cbPfEjXnFkQBTaIDEyJ wSpxSI4WkEzGVV2eue83EGcyELgHF/8PGqUJDBWsVwUjIJfJkePuuWsTt8cLSbcoujd5 90x6aKgjEEdVaChWgUBk1SIUsUcUDzxGe6d44ocGhwJ002aANQfkJqabGPnWeNSL5yNl QwsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715546188; x=1716150988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=laJx40oybFRppPE4yBEpuD/YMY+I/UssA712dWltTXo=; b=VIIYEYDNSi7rpgyyomvA4IRdIvYVBLrUkedCsmDqDVLAapR0wFj99UGWC/wdjge8SP SN2iare2DM9x3Tj73Q8LyAEO1tYDqcEFuoR2eNctKaA3vgaP5jeXWE45Q5cu811Dbbqx Tsd3toctitJzdKxDU5KitP8awLhaNwml8Gd6DfWhleUwhLFwTKqDMBRl51MpmbnRmGm+ IJjLOJ+X9E3tO9HUCkoVgoZJcEPM4d40BXQNW9o87eJkTWl+kbxcDbC6VlLQ3jtfU+12 VLtx44e0Jd8nr+DBcUADW2slpBt7p5ruBosii+I1Utp1BZUpnG0T7VNKLBbogKxErB5Y 8tlA== X-Gm-Message-State: AOJu0YyYPFfG+UL/6Pvb/gvfcpbu8FN2n1inXetqBiL5oJgDRiosxWyM KZF85WvSdihHh/ssuSxDKSUb0nPLIhT/L7x6jW6c2jvPJ2j7hpssAybIOA== X-Received: by 2002:a17:902:ab96:b0:1e3:999a:9726 with SMTP id d9443c01a7336-1ef43e254dbmr86084425ad.29.1715546187445; Sun, 12 May 2024 13:36:27 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ef0c136843sm65912175ad.235.2024.05.12.13.36.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 May 2024 13:36:26 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 May 2024 17:36:11 -0300 Message-ID: <20240512203611.60371-2-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/10] checkasm/flacdsp: add a test for lpc33 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: QaMb+ht5JOxt Signed-off-by: James Almer --- tests/checkasm/flacdsp.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/checkasm/flacdsp.c b/tests/checkasm/flacdsp.c index 96b7d05f7e..6f8e8817b5 100644 --- a/tests/checkasm/flacdsp.c +++ b/tests/checkasm/flacdsp.c @@ -83,6 +83,35 @@ static void check_lpc(int pred_order, int bps) bench_new(dst, coeffs, pred_order, qlevel, BUF_SIZE); } +static void check_lpc33(int pred_order) +{ + int qlevel = rnd() % 16; + int coeff_prec = (rnd() % 15) + 1; + LOCAL_ALIGNED_16(int64_t, dst, [BUF_SIZE]); + LOCAL_ALIGNED_16(int64_t, dst0, [BUF_SIZE]); + LOCAL_ALIGNED_16(int64_t, dst1, [BUF_SIZE]); + LOCAL_ALIGNED_16(int32_t, residuals, [BUF_SIZE]); + LOCAL_ALIGNED_16(int32_t, coeffs, [32]); + + declare_func(void, int64_t *, const int32_t *, const int[32], int, int, int); + + for (int i = 0; i < 32; i++) + coeffs[i] = sign_extend(rnd(), coeff_prec); + + for (int i = 0; i < BUF_SIZE; i++) { + residuals[i] = sign_extend(rnd(), pred_order); + dst[i] = sign_extend64(((int64_t)rnd() << 1) | (rnd() & 1), 33); + } + + memcpy(dst0, dst, BUF_SIZE * sizeof (int64_t)); + memcpy(dst1, dst, BUF_SIZE * sizeof (int64_t)); + call_ref(dst0, residuals, coeffs, pred_order, qlevel, BUF_SIZE); + call_new(dst1, residuals, coeffs, pred_order, qlevel, BUF_SIZE); + if (memcmp(dst0, dst1, BUF_SIZE * sizeof (int64_t)) != 0) + fail(); + bench_new(dst, residuals, coeffs, pred_order, qlevel, BUF_SIZE); +} + static void check_wasted32(void) { int wasted = rnd() % 32; @@ -165,6 +194,9 @@ void checkasm_check_flacdsp(void) for (i = 0; i < FF_ARRAY_ELEMS(pred_orders); i++) if (check_func(h.lpc32, "flac_lpc_32_%d", pred_orders[i])) check_lpc(pred_orders[i], 32); + for (i = 0; i < FF_ARRAY_ELEMS(pred_orders); i++) + if (check_func(h.lpc33, "flac_lpc_33_%d", pred_orders[i])) + check_lpc33(pred_orders[i]); report("lpc");