From patchwork Thu Jun 1 23:10:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 3786 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.10.2 with SMTP id 2csp1024031vsk; Thu, 1 Jun 2017 16:21:55 -0700 (PDT) X-Received: by 10.28.38.68 with SMTP id m65mr1057897wmm.25.1496359314935; Thu, 01 Jun 2017 16:21:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496359314; cv=none; d=google.com; s=arc-20160816; b=to+f7swwM5cKl9AsvG9y2fQgmxYXAsUM9YHb6ljMfsU4K7OGYZoxJOk0FhYNeOfiMb UMej7AbdczIblGOuQ5ubeYh1Yn2wGHZOYEr6zvkBshICGuEKPZR6UPRD30IBNBKaWlri yXLXWUXoultX8HYRylJOAPycShrmGTrcNdVksw+GWdf6MXyh3uLuCc+ks5ORGMc2trIr vItIfXi6ywWMJHxW2lupFw34KajGfiKtUkzL+su5/g6HAiubhRLuLSyLuLXW8xFfZCLK yW0d+96DRyrBnpqWyPfZFq9gfPx/But17nlQVdLB5DKn4UHY0lpjPLtnSqRLXCnSSmtn gKTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=eO00ai3hmG9CANp72Tx5no52d53huNFteODiWHDacVs=; b=Jq/qZhfGFk3DH+9BFhQoDn+/dhbX2LIGpMh7nvFGo/7Fh3sX7OGYYqk548IAcCpTf5 iXAjMFWDdw6f5T8PjOj8rEX+tuo+83W3sybAXmGUd5n6OWhvtB1SPA4SfcUF9JuFUdnK SuiAtjz0Ts9/AaLHDvf2qQNIb7wCuKq4hN122WRszB/JTd2bMCZQw7Pz+19BxzR/4Pxx Em8qJvmuk8sDhBa3fFx2iPZYPwSHPvVTcoz2YHB+v2JyM7kJuI8C/LycerFf1JlfBgdX XZecF1vJJ8lnyJ2eHd3qcfT6f8w7vJBMzTT2ZVNNdu/Do/Z5b9UGvnx3G2JIYt+z3XbU WwbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com; 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=NONE 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 s15si630395wmb.0.2017.06.01.16.21.53; Thu, 01 Jun 2017 16:21:54 -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; 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=NONE 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 3B800689AD9; Fri, 2 Jun 2017 02:21:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f194.google.com (mail-qk0-f194.google.com [209.85.220.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A097689AD0 for ; Fri, 2 Jun 2017 02:21:38 +0300 (EEST) Received: by mail-qk0-f194.google.com with SMTP id d14so4496330qkb.1 for ; Thu, 01 Jun 2017 16:21:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=dLMk57D/UBhjiMmv2miAb6F9SQX9lHQ2lF5WIgNLFAI=; b=o9eUx247VF3BeXTCkJaBkv2KFGo4pryKd1jnHybqizCGzAigbvgTCeXd8KcL2n87Rn DZTj4fmURiLSNkAgDa30AWmG9bfSGVo6YMOAsrcZuvlDmn3gGEclSkkXYAUhz+hLVacT P/PFjOVtq4qlq64vrJgVszuzVmR9kGwxG77z6inZy4RfrBEDVWa2Imu16gKg2rPdH7KZ 3CPNGXF1Z93mHvm1J4EFX40F1Cy3RYrIY2nTC+MGxs9sFTOpvSiMC9bhOGjdVXbLt+FK AgdWk6SXLsxv4N/1o+25AFpgyb/p/c201mvrKCx23mj2DFJstM0SK+MumG43LMg47DX9 VD/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=dLMk57D/UBhjiMmv2miAb6F9SQX9lHQ2lF5WIgNLFAI=; b=c6zomc5pSEiDV8kpyCyYNnhwU8ArKeNlbuLAS2UYIv5D+eSucQcsfOTSx+1yf02D6/ uJReMNbXb0AgF6GTLcy1qEOEDT0kDUTayRsNeyEVraxCnwT7fD/kDVdFh6k5XBMufZ4G 1Zy2OgIgTT/v6Ts2zMcc9Tj7R8NJxGbrfrE7t1fibrNEDJ1uuRQlowWFBROUdn7KcAQe hspwQfX2HFFaQBcuBsEvpj/+I8cj3jfksqrTr4ribvwMB/pxjpKG0F17MTPoUqVqVMb0 jIK6TYbiLHIBWHaMw9th8zY/hJy1bBuI7iE/9r3XyHL949eFC5KeBYIAZL2cqPoWZCjj 14Mw== X-Gm-Message-State: AODbwcDyJgnLuvYdDfWZhstxTFANaRbtYsxhiEJYDWF5vRLk+BrA+FAl aIw56bpX0dIASl7R X-Received: by 10.55.14.85 with SMTP id 82mr4822460qko.7.1496358812695; Thu, 01 Jun 2017 16:13:32 -0700 (PDT) Received: from localhost.localdomain ([181.231.116.134]) by smtp.gmail.com with ESMTPSA id d46sm14066341qte.21.2017.06.01.16.13.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 01 Jun 2017 16:13:32 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Jun 2017 20:10:51 -0300 Message-Id: <20170601231051.6880-3-jamrial@gmail.com> X-Mailer: git-send-email 2.12.1 In-Reply-To: <20170601231051.6880-1-jamrial@gmail.com> References: <20170601231051.6880-1-jamrial@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] avutil/tests: remove float_dsp test X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" It's been ported to checkasm. Signed-off-by: James Almer --- libavutil/Makefile | 1 - libavutil/tests/.gitignore | 1 - libavutil/tests/float_dsp.c | 357 -------------------------------------------- tests/fate/libavutil.mak | 6 - 4 files changed, 365 deletions(-) delete mode 100644 libavutil/tests/float_dsp.c diff --git a/libavutil/Makefile b/libavutil/Makefile index 92ee5bd0b3..4fe81fdd07 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -202,7 +202,6 @@ TESTPROGS = adler32 \ eval \ file \ fifo \ - float_dsp \ hash \ hmac \ imgutils \ diff --git a/libavutil/tests/.gitignore b/libavutil/tests/.gitignore index ae7a0eabb3..a88cd97e50 100644 --- a/libavutil/tests/.gitignore +++ b/libavutil/tests/.gitignore @@ -20,7 +20,6 @@ /eval /fifo /file -/float_dsp /hash /hmac /imgutils diff --git a/libavutil/tests/float_dsp.c b/libavutil/tests/float_dsp.c deleted file mode 100644 index 7dc98c548e..0000000000 --- a/libavutil/tests/float_dsp.c +++ /dev/null @@ -1,357 +0,0 @@ -/* - * 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 -#include -#include -#include -#include -#if HAVE_UNISTD_H -#include /* for getopt */ -#endif -#if !HAVE_GETOPT -#include "compat/getopt.c" -#endif - -#include "libavutil/common.h" -#include "libavutil/cpu.h" -#include "libavutil/internal.h" -#include "libavutil/lfg.h" -#include "libavutil/log.h" -#include "libavutil/random_seed.h" -#include "libavutil/float_dsp.h" - -#define LEN 240 - -static void fill_float_array(AVLFG *lfg, float *a, int len) -{ - int i; - double bmg[2], stddev = 10.0, mean = 0.0; - - for (i = 0; i < len; i += 2) { - av_bmg_get(lfg, bmg); - a[i] = bmg[0] * stddev + mean; - a[i + 1] = bmg[1] * stddev + mean; - } -} -static int compare_floats(const float *a, const float *b, int len, - float max_diff) -{ - int i; - for (i = 0; i < len; i++) { - if (fabsf(a[i] - b[i]) > max_diff) { - av_log(NULL, AV_LOG_ERROR, "%d: %- .12f - %- .12f = % .12g\n", - i, a[i], b[i], a[i] - b[i]); - return -1; - } - } - return 0; -} - -static void fill_double_array(AVLFG *lfg, double *a, int len) -{ - int i; - double bmg[2], stddev = 10.0, mean = 0.0; - - for (i = 0; i < len; i += 2) { - av_bmg_get(lfg, bmg); - a[i] = bmg[0] * stddev + mean; - a[i + 1] = bmg[1] * stddev + mean; - } -} - -static int compare_doubles(const double *a, const double *b, int len, - double max_diff) -{ - int i; - - for (i = 0; i < len; i++) { - if (fabs(a[i] - b[i]) > max_diff) { - av_log(NULL, AV_LOG_ERROR, "%d: %- .12f - %- .12f = % .12g\n", - i, a[i], b[i], a[i] - b[i]); - return -1; - } - } - return 0; -} - -static int test_vector_fmul(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, const float *v2) -{ - LOCAL_ALIGNED(32, float, cdst, [LEN]); - LOCAL_ALIGNED(32, float, odst, [LEN]); - int ret; - - cdsp->vector_fmul(cdst, v1, v2, LEN); - fdsp->vector_fmul(odst, v1, v2, LEN); - - if (ret = compare_floats(cdst, odst, LEN, FLT_EPSILON)) - av_log(NULL, AV_LOG_ERROR, "vector_fmul failed\n"); - - return ret; -} - -#define ARBITRARY_FMAC_SCALAR_CONST 0.005 -static int test_vector_fmac_scalar(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, const float *src0, float scale) -{ - LOCAL_ALIGNED(32, float, cdst, [LEN]); - LOCAL_ALIGNED(32, float, odst, [LEN]); - int ret; - - memcpy(cdst, v1, LEN * sizeof(*v1)); - memcpy(odst, v1, LEN * sizeof(*v1)); - - cdsp->vector_fmac_scalar(cdst, src0, scale, LEN); - fdsp->vector_fmac_scalar(odst, src0, scale, LEN); - - if (ret = compare_floats(cdst, odst, LEN, ARBITRARY_FMAC_SCALAR_CONST)) - av_log(NULL, AV_LOG_ERROR, "vector_fmac_scalar failed\n"); - - return ret; -} - -static int test_vector_fmul_scalar(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, float scale) -{ - LOCAL_ALIGNED(32, float, cdst, [LEN]); - LOCAL_ALIGNED(32, float, odst, [LEN]); - int ret; - - cdsp->vector_fmul_scalar(cdst, v1, scale, LEN); - fdsp->vector_fmul_scalar(odst, v1, scale, LEN); - - if (ret = compare_floats(cdst, odst, LEN, FLT_EPSILON)) - av_log(NULL, AV_LOG_ERROR, "vector_fmul_scalar failed\n"); - - return ret; -} - -#define ARBITRARY_DMAC_SCALAR_CONST 0.005 -static int test_vector_dmac_scalar(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const double *v1, const double *src0, double scale) -{ - LOCAL_ALIGNED(32, double, cdst, [LEN]); - LOCAL_ALIGNED(32, double, odst, [LEN]); - int ret; - - memcpy(cdst, v1, LEN * sizeof(*v1)); - memcpy(odst, v1, LEN * sizeof(*v1)); - - cdsp->vector_dmac_scalar(cdst, src0, scale, LEN); - fdsp->vector_dmac_scalar(odst, src0, scale, LEN); - - if (ret = compare_doubles(cdst, odst, LEN, ARBITRARY_DMAC_SCALAR_CONST)) - av_log(NULL, AV_LOG_ERROR, "vector_dmac_scalar failed\n"); - - return ret; -} - -static int test_vector_dmul_scalar(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const double *v1, double scale) -{ - LOCAL_ALIGNED(32, double, cdst, [LEN]); - LOCAL_ALIGNED(32, double, odst, [LEN]); - int ret; - - cdsp->vector_dmul_scalar(cdst, v1, scale, LEN); - fdsp->vector_dmul_scalar(odst, v1, scale, LEN); - - if (ret = compare_doubles(cdst, odst, LEN, DBL_EPSILON)) - av_log(NULL, AV_LOG_ERROR, "vector_dmul_scalar failed\n"); - - return ret; -} - -#define ARBITRARY_FMUL_WINDOW_CONST 0.008 -static int test_vector_fmul_window(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, const float *v2, const float *v3) -{ - LOCAL_ALIGNED(32, float, cdst, [LEN]); - LOCAL_ALIGNED(32, float, odst, [LEN]); - int ret; - - cdsp->vector_fmul_window(cdst, v1, v2, v3, LEN / 2); - fdsp->vector_fmul_window(odst, v1, v2, v3, LEN / 2); - - if (ret = compare_floats(cdst, odst, LEN, ARBITRARY_FMUL_WINDOW_CONST)) - av_log(NULL, AV_LOG_ERROR, "vector_fmul_window failed\n"); - - return ret; -} - -#define ARBITRARY_FMUL_ADD_CONST 0.005 -static int test_vector_fmul_add(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, const float *v2, const float *v3) -{ - LOCAL_ALIGNED(32, float, cdst, [LEN]); - LOCAL_ALIGNED(32, float, odst, [LEN]); - int ret; - - cdsp->vector_fmul_add(cdst, v1, v2, v3, LEN); - fdsp->vector_fmul_add(odst, v1, v2, v3, LEN); - - if (ret = compare_floats(cdst, odst, LEN, ARBITRARY_FMUL_ADD_CONST)) - av_log(NULL, AV_LOG_ERROR, "vector_fmul_add failed\n"); - - return ret; -} - -static int test_vector_fmul_reverse(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, const float *v2) -{ - LOCAL_ALIGNED(32, float, cdst, [LEN]); - LOCAL_ALIGNED(32, float, odst, [LEN]); - int ret; - - cdsp->vector_fmul_reverse(cdst, v1, v2, LEN); - fdsp->vector_fmul_reverse(odst, v1, v2, LEN); - - if (ret = compare_floats(cdst, odst, LEN, FLT_EPSILON)) - av_log(NULL, AV_LOG_ERROR, "vector_fmul_reverse failed\n"); - - return ret; -} - -static int test_butterflies_float(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, const float *v2) -{ - LOCAL_ALIGNED(32, float, cv1, [LEN]); - LOCAL_ALIGNED(32, float, cv2, [LEN]); - LOCAL_ALIGNED(32, float, ov1, [LEN]); - LOCAL_ALIGNED(32, float, ov2, [LEN]); - int ret; - - memcpy(cv1, v1, LEN * sizeof(*v1)); - memcpy(cv2, v2, LEN * sizeof(*v2)); - memcpy(ov1, v1, LEN * sizeof(*v1)); - memcpy(ov2, v2, LEN * sizeof(*v2)); - - cdsp->butterflies_float(cv1, cv2, LEN); - fdsp->butterflies_float(ov1, ov2, LEN); - - if ((ret = compare_floats(cv1, ov1, LEN, FLT_EPSILON)) || - (ret = compare_floats(cv2, ov2, LEN, FLT_EPSILON))) - av_log(NULL, AV_LOG_ERROR, "butterflies_float failed\n"); - - return ret; -} - -#define ARBITRARY_SCALARPRODUCT_CONST 0.2 -static int test_scalarproduct_float(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp, - const float *v1, const float *v2) -{ - float cprod, oprod; - int ret; - - cprod = cdsp->scalarproduct_float(v1, v2, LEN); - oprod = fdsp->scalarproduct_float(v1, v2, LEN); - - if (ret = compare_floats(&cprod, &oprod, 1, ARBITRARY_SCALARPRODUCT_CONST)) - av_log(NULL, AV_LOG_ERROR, "scalarproduct_float failed\n"); - - return ret; -} - -int main(int argc, char **argv) -{ - int ret = 0, seeded = 0; - uint32_t seed; - AVFloatDSPContext *fdsp, *cdsp; - AVLFG lfg; - - LOCAL_ALIGNED(32, float, src0, [LEN]); - LOCAL_ALIGNED(32, float, src1, [LEN]); - LOCAL_ALIGNED(32, float, src2, [LEN]); - LOCAL_ALIGNED(32, double, dbl_src0, [LEN]); - LOCAL_ALIGNED(32, double, dbl_src1, [LEN]); - LOCAL_ALIGNED(32, double, dbl_src2, [LEN]); - - for (;;) { - int arg = getopt(argc, argv, "s:c:"); - if (arg == -1) - break; - switch (arg) { - case 's': - seed = strtoul(optarg, NULL, 10); - seeded = 1; - break; - case 'c': - { - int cpuflags = av_get_cpu_flags(); - - if (av_parse_cpu_caps(&cpuflags, optarg) < 0) - return 1; - - av_force_cpu_flags(cpuflags); - break; - } - } - } - if (!seeded) - seed = av_get_random_seed(); - - av_log(NULL, AV_LOG_INFO, "float_dsp-test: %s %u\n", seeded ? "seed" : "random seed", seed); - - fdsp = avpriv_float_dsp_alloc(1); - av_force_cpu_flags(0); - cdsp = avpriv_float_dsp_alloc(1); - - if (!fdsp || !cdsp) { - ret = 1; - goto end; - } - - av_lfg_init(&lfg, seed); - - fill_float_array(&lfg, src0, LEN); - fill_float_array(&lfg, src1, LEN); - fill_float_array(&lfg, src2, LEN); - - fill_double_array(&lfg, dbl_src0, LEN); - fill_double_array(&lfg, dbl_src1, LEN); - fill_double_array(&lfg, dbl_src2, LEN); - - if (test_vector_fmul(fdsp, cdsp, src0, src1)) - ret -= 1 << 0; - if (test_vector_fmac_scalar(fdsp, cdsp, src2, src0, src1[0])) - ret -= 1 << 1; - if (test_vector_fmul_scalar(fdsp, cdsp, src0, src1[0])) - ret -= 1 << 2; - if (test_vector_fmul_window(fdsp, cdsp, src0, src1, src2)) - ret -= 1 << 3; - if (test_vector_fmul_add(fdsp, cdsp, src0, src1, src2)) - ret -= 1 << 4; - if (test_vector_fmul_reverse(fdsp, cdsp, src0, src1)) - ret -= 1 << 5; - if (test_butterflies_float(fdsp, cdsp, src0, src1)) - ret -= 1 << 6; - if (test_scalarproduct_float(fdsp, cdsp, src0, src1)) - ret -= 1 << 7; - if (test_vector_dmul_scalar(fdsp, cdsp, dbl_src0, dbl_src1[0])) - ret -= 1 << 8; - if (test_vector_dmac_scalar(fdsp, cdsp, dbl_src2, dbl_src0, dbl_src1[0])) - ret -= 1 << 9; - -end: - av_freep(&fdsp); - av_freep(&cdsp); - return ret; -} diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak index 2e3830ed88..97eae8baf4 100644 --- a/tests/fate/libavutil.mak +++ b/tests/fate/libavutil.mak @@ -83,12 +83,6 @@ FATE_LIBAVUTIL += fate-fifo fate-fifo: libavutil/tests/fifo$(EXESUF) fate-fifo: CMD = run libavutil/tests/fifo -FATE_LIBAVUTIL += fate-float-dsp -fate-float-dsp: libavutil/tests/float_dsp$(EXESUF) -fate-float-dsp: CMD = run libavutil/tests/float_dsp $(CPUFLAGS:%=-c%) -fate-float-dsp: CMP = null -fate-float-dsp: REF = /dev/null - FATE_LIBAVUTIL += fate-hash fate-hash: libavutil/tests/hash$(EXESUF) fate-hash: CMD = run libavutil/tests/hash