From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) by sourceware.org (Postfix) with ESMTPS id 442803857C69 for ; Thu, 21 Oct 2021 03:29:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 442803857C69 Received: by mail-qt1-x836.google.com with SMTP id z24so4973421qtv.9 for ; Wed, 20 Oct 2021 20:29:40 -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=oUpcQ1GOlDSwIgPmCiS5withFpq/rfMk7rgnFSgudOc=; b=5ZeoO/XYfzL0N+XIYXBqp0bLJhnV12jga23qYdSQ68ArZtaOUvIg/YD8WfbFHmI8iA I6sPVKqa/kuXfm5n5ZwYOr+PbsW4qEc5FInVkf7SFGUSgOMYxY8zdcD0/3l9BLfuf8B3 9gCJ7g7XHf6ef8GdX7OSn7swGehykAvv1imIgNbm1tcWhbWj/Y8fr4vMCeU3S3qRMIza DQ4fSzNoPrg1m/lrVwlonufUlav8VITwH/vflKaXlAyGIOY2Lc4XJKrJ8RQFM/R4dbXe XD58lGqNaxfGQFhHuNvBFcX0P9jJ7jSgC8hPscssQ4Rk1Uwuy7O2bZaRQMzMZE641I+y DSAA== X-Gm-Message-State: AOAM533s3xVEwdYNiX3UdthbJo+sTFLtYYessox2psL6OiFLOVA4zRg9 eAQ0a59tA/QKy86koEJVRLfU57Q6JJeLBZ+n1t8GEERf6ak= X-Google-Smtp-Source: ABdhPJxvQbtO//iOrk+jN0ThRO61TRA3b5eMVpJGxEjq+6wZH2RksHnmXfdbHA3RxFnQWjAsZ+0p/r4fhy4VGxV3IsA= X-Received: by 2002:ac8:5cc5:: with SMTP id s5mr3437009qta.256.1634786979762; Wed, 20 Oct 2021 20:29:39 -0700 (PDT) MIME-Version: 1.0 References: <20211020212218.2834086-1-skpgkp2@gmail.com> In-Reply-To: From: Sunil Pandey Date: Wed, 20 Oct 2021 20:29:03 -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=-6.5 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: Thu, 21 Oct 2021 03:29:46 -0000 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 > >> > >