From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) by sourceware.org (Postfix) with ESMTPS id 1FF603857C52 for ; Fri, 22 Oct 2021 13:10:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1FF603857C52 Received: by mail-qv1-xf33.google.com with SMTP id b1so456049qvk.5 for ; Fri, 22 Oct 2021 06:10:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LQEp20VVNP/h7LFKyyBsKP7DTXlew0ZrChs+1X0mglM=; b=LHwkfkoYBPRHhhWuCvRMvuhXgQciQAftobtHULpoE9dAp33xmiWfSfNXtl4MDC0wwe 39vL/WYM/443XU2Wwbx6EUzx1ZsornQ9HwbVuzC+e6yLFb//IXvBGGKs+SgZ2suFzt/l 1P7xDqdSiDyhIMWKZWQzxaThI5bcW4VqbhsW6vx2qkK6GzOxMKuMf+AA6E85Rjp9v8u0 SVr3s0I2cMnFBV7R+6ExrKvG7mR/pRKNqi1iJtYuTUNtH1CUlfULsuoli3uhL1L1p1iX lfrqZ5GeRHG8mbcfyN9zR9OPbftB5OGX7UpvgqgzxpdeGu/2eU6E6EUSxOsnhbwu8KP8 1GbQ== X-Gm-Message-State: AOAM530q5ZX34F2R99KlAANRAXO6kUWegvaEpWDZHhz2OV2Ur6WMRSpg G4JN4VE+F0TrRY595JrAXG93R83C1Crp8OiRXb+cy4wYcj0= X-Google-Smtp-Source: ABdhPJzHMnazdbppjjo6Et7YIMSUEnIUThqQnwU4vLE/sMoh8g56ZtaJoCnSQR4j3w01Xt0pT1b6AmfM7aSAQLsSkOc= X-Received: by 2002:a05:6214:5018:: with SMTP id jo24mr11703406qvb.15.1634908244602; Fri, 22 Oct 2021 06:10:44 -0700 (PDT) MIME-Version: 1.0 References: <20211020212218.2834086-1-skpgkp2@gmail.com> In-Reply-To: From: Sunil Pandey Date: Fri, 22 Oct 2021 06:10:08 -0700 Message-ID: Subject: Re: [PATCH] x86_64: Add missing libmvec ABI tests To: Noah Goldstein Cc: GNU C Library , "H.J. Lu" X-Spam-Status: No, score=-8.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, HK_RANDOM_ENVFROM, HK_RANDOM_FROM, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Oct 2021 13:10:51 -0000 OK for trunk? On Wed, Oct 20, 2021 at 8:29 PM Sunil Pandey wrote: > > > On Wed, Oct 20, 2021 at 6:37 PM Noah Goldstein > wrote: > >> On Wed, Oct 20, 2021 at 7:10 PM Sunil Pandey wrote: >> > >> > >> > >> > On Wed, Oct 20, 2021 at 3:48 PM Noah Goldstein >> wrote: >> >> >> >> On Wed, Oct 20, 2021 at 4:22 PM Sunil K Pandey >> wrote: >> >> > >> >> > Add vector ABI tests for cos, exp, log, pow and sin functions. >> >> > --- >> >> > sysdeps/x86_64/fpu/Makeconfig | 11 ++--- >> >> > .../x86_64/fpu/test-double-libmvec-cos-avx.c | 1 + >> >> > .../x86_64/fpu/test-double-libmvec-cos-avx2.c | 1 + >> >> > .../fpu/test-double-libmvec-cos-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-double-libmvec-cos.c | 3 ++ >> >> > .../x86_64/fpu/test-double-libmvec-exp-avx.c | 1 + >> >> > .../x86_64/fpu/test-double-libmvec-exp-avx2.c | 1 + >> >> > .../fpu/test-double-libmvec-exp-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-double-libmvec-exp.c | 3 ++ >> >> > .../x86_64/fpu/test-double-libmvec-log-avx.c | 1 + >> >> > .../x86_64/fpu/test-double-libmvec-log-avx2.c | 1 + >> >> > .../fpu/test-double-libmvec-log-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-double-libmvec-log.c | 3 ++ >> >> > .../x86_64/fpu/test-double-libmvec-pow-avx.c | 1 + >> >> > .../x86_64/fpu/test-double-libmvec-pow-avx2.c | 1 + >> >> > .../fpu/test-double-libmvec-pow-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-double-libmvec-pow.c | 3 ++ >> >> > .../x86_64/fpu/test-double-libmvec-sin-avx.c | 1 + >> >> > .../x86_64/fpu/test-double-libmvec-sin-avx2.c | 1 + >> >> > .../fpu/test-double-libmvec-sin-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-double-libmvec-sin.c | 3 ++ >> >> > .../x86_64/fpu/test-float-libmvec-cosf-avx.c | 1 + >> >> > .../x86_64/fpu/test-float-libmvec-cosf-avx2.c | 1 + >> >> > .../fpu/test-float-libmvec-cosf-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-float-libmvec-cosf.c | 3 ++ >> >> > .../x86_64/fpu/test-float-libmvec-expf-avx.c | 1 + >> >> > .../x86_64/fpu/test-float-libmvec-expf-avx2.c | 1 + >> >> > .../fpu/test-float-libmvec-expf-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-float-libmvec-expf.c | 3 ++ >> >> > .../x86_64/fpu/test-float-libmvec-logf-avx.c | 1 + >> >> > .../x86_64/fpu/test-float-libmvec-logf-avx2.c | 1 + >> >> > .../fpu/test-float-libmvec-logf-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-float-libmvec-logf.c | 3 ++ >> >> > .../x86_64/fpu/test-float-libmvec-powf-avx.c | 1 + >> >> > .../x86_64/fpu/test-float-libmvec-powf-avx2.c | 1 + >> >> > .../fpu/test-float-libmvec-powf-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-float-libmvec-powf.c | 3 ++ >> >> > .../x86_64/fpu/test-float-libmvec-sinf-avx.c | 1 + >> >> > .../x86_64/fpu/test-float-libmvec-sinf-avx2.c | 1 + >> >> > .../fpu/test-float-libmvec-sinf-avx512f.c | 1 + >> >> > sysdeps/x86_64/fpu/test-float-libmvec-sinf.c | 3 ++ >> >> > sysdeps/x86_64/fpu/test-vector-abi-arg1.h | 43 +++++++++++++++++ >> >> > sysdeps/x86_64/fpu/test-vector-abi-arg2.h | 46 >> +++++++++++++++++++ >> >> > 43 files changed, 152 insertions(+), 8 deletions(-) >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-cos-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-cos-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-double-libmvec-cos-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-cos.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-exp-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-exp-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-double-libmvec-exp-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-exp.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-double-libmvec-log-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-log.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-pow-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-pow-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-double-libmvec-pow-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-pow.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sin-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sin-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-double-libmvec-sin-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-sin.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-cosf.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-expf-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-expf-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-float-libmvec-expf-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-expf.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-logf-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-logf-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-float-libmvec-logf-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-logf.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-powf-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-powf-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-float-libmvec-powf-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-powf.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx2.c >> >> > create mode 100644 >> sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx512f.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-sinf.c >> >> > create mode 100644 sysdeps/x86_64/fpu/test-vector-abi-arg1.h >> >> > create mode 100644 sysdeps/x86_64/fpu/test-vector-abi-arg2.h >> >> > >> >> > diff --git a/sysdeps/x86_64/fpu/Makeconfig >> b/sysdeps/x86_64/fpu/Makeconfig >> >> > index 0a9341cdd9..24aaee1a43 100644 >> >> > --- a/sysdeps/x86_64/fpu/Makeconfig >> >> > +++ b/sysdeps/x86_64/fpu/Makeconfig >> >> > @@ -29,15 +29,10 @@ libmvec-funcs = \ >> >> > sin \ >> >> > sincos \ >> >> > >> >> > -# FIXME: Add ABI tests for all libmvec functions and replace >> >> > -# libmvec-abi-funcs with libmvec-funcs. >> >> > -libmvec-abi-funcs = \ >> >> > - sincos >> >> > - >> >> > # The base libmvec ABI tests. >> >> > libmvec-abi-func-tests = \ >> >> > - $(addprefix test-double-libmvec-,$(libmvec-abi-funcs)) \ >> >> > - $(addsuffix f,$(addprefix >> test-float-libmvec-,$(libmvec-abi-funcs))) >> >> > + $(addprefix test-double-libmvec-,$(libmvec-funcs)) \ >> >> > + $(addsuffix f,$(addprefix test-float-libmvec-,$(libmvec-funcs))) >> >> > >> >> > # The AVX libmvec ABI tests. >> >> > libmvec-abi-func-avx-tests = \ >> >> > @@ -62,7 +57,7 @@ $(common-objpfx)libmvec.mk: >> $(common-objpfx)config.make >> >> > echo; \ >> >> > done; \ >> >> > done; \ >> >> > - for t in $(libmvec-abi-funcs); do \ >> >> > + for t in $(libmvec-funcs); do \ >> >> > echo "CFLAGS-test-double-libmvec-$$t.c = \\"; \ >> >> > echo " \$$(libmvec-abi-test-cflags)"; \ >> >> > echo "CFLAGS-test-double-libmvec-$$t-avx.c = \\"; \ >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..f2b3e8e883 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-cos.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx2.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..f2b3e8e883 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-cos.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx512f.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..f2b3e8e883 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-cos-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-cos.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-cos.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-cos.c >> >> > new file mode 100644 >> >> > index 0000000000..ebc688163e >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-cos.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE double >> >> > +#define LIBMVEC_FUNC cos >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..fb485c3558 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-exp.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx2.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..fb485c3558 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-exp.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx512f.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..fb485c3558 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-exp-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-exp.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-exp.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-exp.c >> >> > new file mode 100644 >> >> > index 0000000000..fd8143aacc >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-exp.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE double >> >> > +#define LIBMVEC_FUNC exp >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log-avx.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-log-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..1acdf16a6e >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-log-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-log.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log-avx2.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-log-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..1acdf16a6e >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-log-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-log.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log-avx512f.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-log-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..1acdf16a6e >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-log-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-log.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-log.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-log.c >> >> > new file mode 100644 >> >> > index 0000000000..a17a02ca66 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-log.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE double >> >> > +#define LIBMVEC_FUNC log >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..7c921ccad5 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-pow.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx2.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..7c921ccad5 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-pow.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx512f.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..7c921ccad5 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-pow-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-pow.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-pow.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-pow.c >> >> > new file mode 100644 >> >> > index 0000000000..c70e24b663 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-pow.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE double >> >> > +#define LIBMVEC_FUNC pow >> >> > +#include "test-vector-abi-arg2.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..c785cd0445 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-sin.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx2.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..c785cd0445 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-sin.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx512f.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..c785cd0445 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sin-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-double-libmvec-sin.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sin.c >> b/sysdeps/x86_64/fpu/test-double-libmvec-sin.c >> >> > new file mode 100644 >> >> > index 0000000000..bc2fb3c614 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-double-libmvec-sin.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE double >> >> > +#define LIBMVEC_FUNC sin >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..928f4b607b >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-cosf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx2.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..928f4b607b >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-cosf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx512f.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..928f4b607b >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-cosf-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-cosf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-cosf.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-cosf.c >> >> > new file mode 100644 >> >> > index 0000000000..d8ecea7e6a >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-cosf.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE float >> >> > +#define LIBMVEC_FUNC cosf >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..9e0b6d667c >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-expf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx2.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..9e0b6d667c >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-expf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx512f.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..9e0b6d667c >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-expf-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-expf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-expf.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-expf.c >> >> > new file mode 100644 >> >> > index 0000000000..0c21b9ae83 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-expf.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE float >> >> > +#define LIBMVEC_FUNC expf >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..92767c9462 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-logf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx2.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..92767c9462 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-logf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx512f.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..92767c9462 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-logf-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-logf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-logf.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-logf.c >> >> > new file mode 100644 >> >> > index 0000000000..964d869e72 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-logf.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE float >> >> > +#define LIBMVEC_FUNC logf >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..e00d4e73e0 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-powf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx2.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..e00d4e73e0 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-powf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx512f.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..e00d4e73e0 >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-powf-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-powf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-powf.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-powf.c >> >> > new file mode 100644 >> >> > index 0000000000..ef8559b0ca >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-powf.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE float >> >> > +#define LIBMVEC_FUNC powf >> >> > +#include "test-vector-abi-arg2.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx.c >> >> > new file mode 100644 >> >> > index 0000000000..302886760e >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-sinf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx2.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx2.c >> >> > new file mode 100644 >> >> > index 0000000000..302886760e >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx2.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-sinf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx512f.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx512f.c >> >> > new file mode 100644 >> >> > index 0000000000..302886760e >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinf-avx512f.c >> >> > @@ -0,0 +1 @@ >> >> > +#include "test-float-libmvec-sinf.c" >> >> > diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sinf.c >> b/sysdeps/x86_64/fpu/test-float-libmvec-sinf.c >> >> > new file mode 100644 >> >> > index 0000000000..00d3255ccf >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-float-libmvec-sinf.c >> >> > @@ -0,0 +1,3 @@ >> >> > +#define LIBMVEC_TYPE float >> >> > +#define LIBMVEC_FUNC sinf >> >> > +#include "test-vector-abi-arg1.h" >> >> > diff --git a/sysdeps/x86_64/fpu/test-vector-abi-arg1.h >> b/sysdeps/x86_64/fpu/test-vector-abi-arg1.h >> >> > new file mode 100644 >> >> > index 0000000000..962fafcd0b >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-vector-abi-arg1.h >> >> > @@ -0,0 +1,43 @@ >> >> > +/* Test for vector ABI with a single argument. >> >> > + Copyright (C) 2016-2021 Free Software Foundation, Inc. >> >> > + This file is part of the GNU C Library. >> >> > + >> >> > + The GNU C Library 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. >> >> > + >> >> > + The GNU C Library 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 the GNU C Library; if not, see >> >> > + . */ >> >> > + >> >> > +#include >> >> > +#include >> >> > + >> >> > +/* Since libsupport_nonshared.a is placed before test-libmvec*.o, >> which >> >> > + defines do_test, reference support_test_main here to include it >> to >> >> > + avoid undefined reference to support_test_main. The libmvec ABI >> test >> >> > + doesn't need other symbols in libsupport_nonshared.a. */ >> >> > +__typeof (support_test_main) *support_test_main_p = >> support_test_main; >> >> > + >> >> > +#define N 1000 >> >> > +LIBMVEC_TYPE x[N], c[N]; >> >> > + >> >> > +int >> >> > +test_vector_abi (void) >> >> > +{ >> >> > + int i; >> >> > + for(i = 0; i < N; i++) >> >> > + c[i] = i / 3; >> >> > + >> >> > +#pragma omp simd >> >> >> >> Do we need this? >> > >> > Yes, omp pragma forces function to vectorize. Without it, depending on >> the gcc version it may or may not vectorize. >> > For libmvec ABI test LIBMVEC_FUNC needs to be vectorized. >> > https://sourceware.org/glibc/wiki/libmvec >> >> I see. Makes sense. Is there any way we can guarantee the correct version >> is >> actually being tested? Or is this test purely that the code will compile >> / run >> with the tested build flags? >> > This code will just compile/run with tested build flags. > >> >> > >> >> >> >> > + for(i = 0; i < N; i++) >> >> > + x[i] = LIBMVEC_FUNC (c[i]); >> >> > + >> >> > + return 0; >> >> > +} >> >> > diff --git a/sysdeps/x86_64/fpu/test-vector-abi-arg2.h >> b/sysdeps/x86_64/fpu/test-vector-abi-arg2.h >> >> > new file mode 100644 >> >> > index 0000000000..4b7e10d26b >> >> > --- /dev/null >> >> > +++ b/sysdeps/x86_64/fpu/test-vector-abi-arg2.h >> >> > @@ -0,0 +1,46 @@ >> >> > +/* Test for vector ABI with 2 arguments. >> >> > + Copyright (C) 2016-2021 Free Software Foundation, Inc. >> >> > + This file is part of the GNU C Library. >> >> > + >> >> > + The GNU C Library 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. >> >> > + >> >> > + The GNU C Library 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 the GNU C Library; if not, see >> >> > + . */ >> >> > + >> >> > +#include >> >> > +#include >> >> > + >> >> > +/* Since libsupport_nonshared.a is placed before test-libmvec*.o, >> which >> >> > + defines do_test, reference support_test_main here to include it >> to >> >> > + avoid undefined reference to support_test_main. The libmvec ABI >> test >> >> > + doesn't need other symbols in libsupport_nonshared.a. */ >> >> > +__typeof (support_test_main) *support_test_main_p = >> support_test_main; >> >> > + >> >> > +#define N 1000 >> >> > +LIBMVEC_TYPE x[N], s[N], c[N]; >> >> > + >> >> > +int >> >> > +test_vector_abi (void) >> >> > +{ >> >> > + int i; >> >> > + for(i = 0; i < N; i++) >> >> > + { >> >> > + c[i] = i / 3; >> >> >> >> Is there a reason for 'i / 3'? >> > >> > Nothing special about i/3. It could be initialized with any >> float/double number. >> >> Maybe 2 for faster initialization. Not important though. > > Same code is used for float and double implementation. Though not very > important in this case, i/3 will create test input with more precision. > >> > > >> >> >> >> >> >> >> >> >> > + s[i] = c[i]; >> >> > + } >> >> > + >> >> > +#pragma omp simd >> >> >> >> Do we need this? >> > >> > Same as above. >> >> >> >> >> >> > + for(i = 0; i < N; i++) >> >> > + x[i] = LIBMVEC_FUNC (s[i], c[i]); >> >> > + >> >> > + return 0; >> >> > +} >> >> > -- >> >> > 2.31.1 >> >> > >> >