From patchwork Wed Oct 20 21:22:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Pandey X-Patchwork-Id: 1544042 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=hybrWjOR; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HZNrR3G7tz9sR4 for ; Thu, 21 Oct 2021 08:23:19 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B7C043857C65 for ; Wed, 20 Oct 2021 21:23:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B7C043857C65 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1634764995; bh=OBc0EOn+r3l+VHEX8R6gYrWvIo+gYJsVcsBM64isr48=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=hybrWjORhwUqinXFiSx+zUzFkJMbFRnqQ5gvK4IFt9Ksz8s5oL65YpmS/jWaEWqNM fChjaaJAgpj3Oc4RgppBZ8b4bmcVYUlPZKeeNi25gTt5hBBWAn6aH3EjnzJ4yix2m+ 7fA0RTSKlDLWt4R9n1aeW/0QW16B16l3BGos6zG0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by sourceware.org (Postfix) with ESMTPS id C8E363857C67 for ; Wed, 20 Oct 2021 21:22:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C8E363857C67 X-IronPort-AV: E=McAfee;i="6200,9189,10143"; a="216050538" X-IronPort-AV: E=Sophos;i="5.87,167,1631602800"; d="scan'208";a="216050538" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Oct 2021 14:22:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,167,1631602800"; d="scan'208";a="720571129" Received: from scymds01.sc.intel.com ([10.148.94.138]) by fmsmga005.fm.intel.com with ESMTP; 20 Oct 2021 14:22:21 -0700 Received: from gskx-1.sc.intel.com (gskx-1.sc.intel.com [172.25.149.211]) by scymds01.sc.intel.com with ESMTP id 19KLMJZL031003; Wed, 20 Oct 2021 14:22:19 -0700 To: libc-alpha@sourceware.org Subject: [PATCH] x86_64: Add missing libmvec ABI tests Date: Wed, 20 Oct 2021 14:22:18 -0700 Message-Id: <20211020212218.2834086-1-skpgkp2@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-6.2 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, FORGED_GMAIL_RCVD, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, HK_RANDOM_ENVFROM, HK_RANDOM_FROM, KAM_DMARC_NONE, KAM_DMARC_STATUS, KAM_SHORT, NML_ADSP_CUSTOM_MED, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_SOFTFAIL, SPOOFED_FREEMAIL, SPOOF_GMAIL_MID, 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-Patchwork-Original-From: Sunil K Pandey via Libc-alpha From: Sunil Pandey Reply-To: Sunil K Pandey Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" Add vector ABI tests for cos, exp, log, pow and sin functions. Reviewed-by: H.J. Lu --- 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 + 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; + s[i] = c[i]; + } + +#pragma omp simd + for(i = 0; i < N; i++) + x[i] = LIBMVEC_FUNC (s[i], c[i]); + + return 0; +}