From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by sourceware.org (Postfix) with ESMTPS id 4CE683858D39 for ; Wed, 20 Oct 2021 22:48:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4CE683858D39 Received: by mail-pg1-x52f.google.com with SMTP id t7so9379248pgl.9 for ; Wed, 20 Oct 2021 15:48:55 -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=KLABqWJHdP3/wwwRFnNce0hwSfH0L6cTlwHQ1/fOj2A=; b=YE+d82Aqvc9889S+rYyLmQ+KBNu1MdGb2h310x+FYAwosFbL3E3WlJBGJWgwJE6Hyp ICIMio2GGeRRIpr5Y427cARNcAIpKvCg/j1vfdG+eHdqiith9ztvtZdFZm+T71llpu46 SQMhEYLuEMAWSwi7dcHl4RPEQJXXX3fVQivBqnfC/JUUkcIjKpUvDwmAVL5MxLvPsxzV MIv/k711fpdLEfpqr2j+tE5rBuzRYP33GdgzoP7WPyjn+wPrlGqE4stgveNS5svQ3UlQ pbP7fP7I/t1gFfkR3kBUdYU4cxgQYyBqEQPnDMnVS5DmkQDd+ypdCqFw/h9nodZwmm9q djOA== X-Gm-Message-State: AOAM532K2mXnHHTJIjHHtly1vk3//mfFh64brbOgbKK+vmFOyNhKyQIc WxU15c3g97UZcB+15AIZgy9NCPYsw4b22OHkkQw= X-Google-Smtp-Source: ABdhPJx96d8d+Ve9c8JHZfHIKj8aKwEBlZ4PpWFUt+zLKYdnXCKSgJG00SsyXgKaQauSwMyE11B7bQWMKckIaZDQ0FY= X-Received: by 2002:a62:8f53:0:b0:44c:5d10:9378 with SMTP id n80-20020a628f53000000b0044c5d109378mr2045953pfd.19.1634770134138; Wed, 20 Oct 2021 15:48:54 -0700 (PDT) MIME-Version: 1.0 References: <20211020212218.2834086-1-skpgkp2@gmail.com> In-Reply-To: <20211020212218.2834086-1-skpgkp2@gmail.com> From: Noah Goldstein Date: Wed, 20 Oct 2021 17:48:43 -0500 Message-ID: Subject: Re: [PATCH] x86_64: Add missing libmvec ABI tests To: Sunil K Pandey Cc: GNU C Library , "H.J. Lu" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, 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 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: Wed, 20 Oct 2021 22:48:58 -0000 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? > + 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'? > + s[i] = c[i]; > + } > + > +#pragma omp simd Do we need this? > + for(i = 0; i < N; i++) > + x[i] = LIBMVEC_FUNC (s[i], c[i]); > + > + return 0; > +} > -- > 2.31.1 >