From patchwork Wed Nov 24 19:37:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Pandey X-Patchwork-Id: 48073 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E9189385803B for ; Wed, 24 Nov 2021 19:42:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E9189385803B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1637782954; bh=vFVl+FEpAw6rKR0TUnicWv5LAUA5rmpd/CI46OPFysU=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=fdcsAn6EFdWcIs2pZ4Z9vKwUaBXStGX6n1py8Qbx31uDYM9CWgoVPE9j8Svu5eISL O7+3p8mcq9GYpqpBJPn3CNi4UqEv9bvG1BrQJPQvRxkzVRKAUnhbhCenNHWNQyBtO+ QDA1QDTy+kHgVSKpCOI24hHXpNQmIPLou7AMPnXA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by sourceware.org (Postfix) with ESMTPS id 224C6385800F for ; Wed, 24 Nov 2021 19:38:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 224C6385800F X-IronPort-AV: E=McAfee;i="6200,9189,10178"; a="232852725" X-IronPort-AV: E=Sophos;i="5.87,261,1631602800"; d="scan'208";a="232852725" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Nov 2021 11:38:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,261,1631602800"; d="scan'208";a="475399691" Received: from scymds02.sc.intel.com ([10.82.73.244]) by orsmga002.jf.intel.com with ESMTP; 24 Nov 2021 11:38:09 -0800 Received: from gskx-1.sc.intel.com (gskx-1.sc.intel.com [172.25.149.211]) by scymds02.sc.intel.com with ESMTP id 1AOJc7Wq021555; Wed, 24 Nov 2021 11:38:08 -0800 To: libc-alpha@sourceware.org Subject: [PATCH 05/42] x86-64: Add vector asin/asinf implementation to libmvec Date: Wed, 24 Nov 2021 11:37:30 -0800 Message-Id: <20211124193807.2093208-6-skpgkp2@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211124193807.2093208-1-skpgkp2@gmail.com> References: <20211124193807.2093208-1-skpgkp2@gmail.com> 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, KAM_STOCKGEN, LOTS_OF_MONEY, NML_ADSP_CUSTOM_MED, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_SOFTFAIL, 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 Cc: andrey.kolesov@intel.com Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Implement vectorized asin/asinf containing SSE, AVX, AVX2 and AVX512 versions for libmvec as per vector ABI. It also contains accuracy and ABI tests for vector asin/asinf with regenerated ulps. --- bits/libm-simd-decl-stubs.h | 11 + math/bits/mathcalls.h | 2 +- .../unix/sysv/linux/x86_64/libmvec.abilist | 8 + sysdeps/x86/fpu/bits/math-vector.h | 4 + sysdeps/x86_64/fpu/Makeconfig | 1 + sysdeps/x86_64/fpu/Versions | 2 + sysdeps/x86_64/fpu/libm-test-ulps | 20 + .../fpu/multiarch/svml_d_asin2_core-sse2.S | 20 + .../x86_64/fpu/multiarch/svml_d_asin2_core.c | 27 + .../fpu/multiarch/svml_d_asin2_core_sse4.S | 2765 +++++++++++++++++ .../fpu/multiarch/svml_d_asin4_core-sse.S | 20 + .../x86_64/fpu/multiarch/svml_d_asin4_core.c | 27 + .../fpu/multiarch/svml_d_asin4_core_avx2.S | 2647 ++++++++++++++++ .../fpu/multiarch/svml_d_asin8_core-avx2.S | 20 + .../x86_64/fpu/multiarch/svml_d_asin8_core.c | 27 + .../fpu/multiarch/svml_d_asin8_core_avx512.S | 2523 +++++++++++++++ .../fpu/multiarch/svml_s_asinf16_core-avx2.S | 20 + .../fpu/multiarch/svml_s_asinf16_core.c | 28 + .../multiarch/svml_s_asinf16_core_avx512.S | 2173 +++++++++++++ .../fpu/multiarch/svml_s_asinf4_core-sse2.S | 20 + .../x86_64/fpu/multiarch/svml_s_asinf4_core.c | 28 + .../fpu/multiarch/svml_s_asinf4_core_sse4.S | 2649 ++++++++++++++++ .../fpu/multiarch/svml_s_asinf8_core-sse.S | 20 + .../x86_64/fpu/multiarch/svml_s_asinf8_core.c | 28 + .../fpu/multiarch/svml_s_asinf8_core_avx2.S | 2483 +++++++++++++++ sysdeps/x86_64/fpu/svml_d_asin2_core.S | 29 + sysdeps/x86_64/fpu/svml_d_asin4_core.S | 29 + sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S | 25 + sysdeps/x86_64/fpu/svml_d_asin8_core.S | 25 + sysdeps/x86_64/fpu/svml_s_asinf16_core.S | 25 + sysdeps/x86_64/fpu/svml_s_asinf4_core.S | 29 + sysdeps/x86_64/fpu/svml_s_asinf8_core.S | 29 + sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S | 25 + .../x86_64/fpu/test-double-libmvec-asin-avx.c | 1 + .../fpu/test-double-libmvec-asin-avx2.c | 1 + .../fpu/test-double-libmvec-asin-avx512f.c | 1 + sysdeps/x86_64/fpu/test-double-libmvec-asin.c | 3 + .../x86_64/fpu/test-double-vlen2-wrappers.c | 1 + .../fpu/test-double-vlen4-avx2-wrappers.c | 1 + .../x86_64/fpu/test-double-vlen4-wrappers.c | 1 + .../x86_64/fpu/test-double-vlen8-wrappers.c | 1 + .../x86_64/fpu/test-float-libmvec-asinf-avx.c | 1 + .../fpu/test-float-libmvec-asinf-avx2.c | 1 + .../fpu/test-float-libmvec-asinf-avx512f.c | 1 + sysdeps/x86_64/fpu/test-float-libmvec-asinf.c | 3 + .../x86_64/fpu/test-float-vlen16-wrappers.c | 1 + .../x86_64/fpu/test-float-vlen4-wrappers.c | 1 + .../fpu/test-float-vlen8-avx2-wrappers.c | 1 + .../x86_64/fpu/test-float-vlen8-wrappers.c | 1 + 49 files changed, 15808 insertions(+), 1 deletion(-) create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c create mode 100644 sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S create mode 100644 sysdeps/x86_64/fpu/svml_d_asin2_core.S create mode 100644 sysdeps/x86_64/fpu/svml_d_asin4_core.S create mode 100644 sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S create mode 100644 sysdeps/x86_64/fpu/svml_d_asin8_core.S create mode 100644 sysdeps/x86_64/fpu/svml_s_asinf16_core.S create mode 100644 sysdeps/x86_64/fpu/svml_s_asinf4_core.S create mode 100644 sysdeps/x86_64/fpu/svml_s_asinf8_core.S create mode 100644 sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-asin-avx.c create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-asin-avx2.c create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-asin-avx512f.c create mode 100644 sysdeps/x86_64/fpu/test-double-libmvec-asin.c create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx.c create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx2.c create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx512f.c create mode 100644 sysdeps/x86_64/fpu/test-float-libmvec-asinf.c diff --git a/bits/libm-simd-decl-stubs.h b/bits/libm-simd-decl-stubs.h index 7408044938..5628ada8e1 100644 --- a/bits/libm-simd-decl-stubs.h +++ b/bits/libm-simd-decl-stubs.h @@ -120,4 +120,15 @@ #define __DECL_SIMD_acoshf32x #define __DECL_SIMD_acoshf64x #define __DECL_SIMD_acoshf128x + +#define __DECL_SIMD_asin +#define __DECL_SIMD_asinf +#define __DECL_SIMD_asinl +#define __DECL_SIMD_asinf16 +#define __DECL_SIMD_asinf32 +#define __DECL_SIMD_asinf64 +#define __DECL_SIMD_asinf128 +#define __DECL_SIMD_asinf32x +#define __DECL_SIMD_asinf64x +#define __DECL_SIMD_asinf128x #endif diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index 3380358eb8..dc04ab5538 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -52,7 +52,7 @@ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ -__MATHCALL (asin,, (_Mdouble_ __x)); +__MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ diff --git a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist index dfc5cbc7dc..99229e1b1f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist @@ -48,17 +48,25 @@ GLIBC_2.22 _ZGVeN8vv_pow F GLIBC_2.22 _ZGVeN8vvv_sincos F GLIBC_2.35 _ZGVbN2v_acos F GLIBC_2.35 _ZGVbN2v_acosh F +GLIBC_2.35 _ZGVbN2v_asin F GLIBC_2.35 _ZGVbN4v_acosf F GLIBC_2.35 _ZGVbN4v_acoshf F +GLIBC_2.35 _ZGVbN4v_asinf F GLIBC_2.35 _ZGVcN4v_acos F GLIBC_2.35 _ZGVcN4v_acosh F +GLIBC_2.35 _ZGVcN4v_asin F GLIBC_2.35 _ZGVcN8v_acosf F GLIBC_2.35 _ZGVcN8v_acoshf F +GLIBC_2.35 _ZGVcN8v_asinf F GLIBC_2.35 _ZGVdN4v_acos F GLIBC_2.35 _ZGVdN4v_acosh F +GLIBC_2.35 _ZGVdN4v_asin F GLIBC_2.35 _ZGVdN8v_acosf F GLIBC_2.35 _ZGVdN8v_acoshf F +GLIBC_2.35 _ZGVdN8v_asinf F GLIBC_2.35 _ZGVeN16v_acosf F GLIBC_2.35 _ZGVeN16v_acoshf F +GLIBC_2.35 _ZGVeN16v_asinf F GLIBC_2.35 _ZGVeN8v_acos F GLIBC_2.35 _ZGVeN8v_acosh F +GLIBC_2.35 _ZGVeN8v_asin F diff --git a/sysdeps/x86/fpu/bits/math-vector.h b/sysdeps/x86/fpu/bits/math-vector.h index e7097a0a77..d1b3b566cd 100644 --- a/sysdeps/x86/fpu/bits/math-vector.h +++ b/sysdeps/x86/fpu/bits/math-vector.h @@ -66,6 +66,10 @@ # define __DECL_SIMD_acosh __DECL_SIMD_x86_64 # undef __DECL_SIMD_acoshf # define __DECL_SIMD_acoshf __DECL_SIMD_x86_64 +# undef __DECL_SIMD_asin +# define __DECL_SIMD_asin __DECL_SIMD_x86_64 +# undef __DECL_SIMD_asinf +# define __DECL_SIMD_asinf __DECL_SIMD_x86_64 # endif #endif diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig index ed34708924..b190086619 100644 --- a/sysdeps/x86_64/fpu/Makeconfig +++ b/sysdeps/x86_64/fpu/Makeconfig @@ -24,6 +24,7 @@ postclean-generated += libmvec.mk libmvec-funcs = \ acos \ acosh \ + asin \ cos \ exp \ log \ diff --git a/sysdeps/x86_64/fpu/Versions b/sysdeps/x86_64/fpu/Versions index 053d32d14d..21d0c7937f 100644 --- a/sysdeps/x86_64/fpu/Versions +++ b/sysdeps/x86_64/fpu/Versions @@ -16,7 +16,9 @@ libmvec { GLIBC_2.35 { _ZGVbN2v_acos; _ZGVcN4v_acos; _ZGVdN4v_acos; _ZGVeN8v_acos; _ZGVbN2v_acosh; _ZGVcN4v_acosh; _ZGVdN4v_acosh; _ZGVeN8v_acosh; + _ZGVbN2v_asin; _ZGVcN4v_asin; _ZGVdN4v_asin; _ZGVeN8v_asin; _ZGVbN4v_acosf; _ZGVcN8v_acosf; _ZGVdN8v_acosf; _ZGVeN16v_acosf; _ZGVbN4v_acoshf; _ZGVcN8v_acoshf; _ZGVdN8v_acoshf; _ZGVeN16v_acoshf; + _ZGVbN4v_asinf; _ZGVcN8v_asinf; _ZGVdN8v_asinf; _ZGVeN16v_asinf; } } diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index 8c8f4c648d..30ac87d84e 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -113,6 +113,26 @@ float: 1 float128: 2 ldouble: 1 +Function: "asin_vlen16": +float: 1 + +Function: "asin_vlen2": +double: 1 + +Function: "asin_vlen4": +double: 1 +float: 1 + +Function: "asin_vlen4_avx2": +double: 1 + +Function: "asin_vlen8": +double: 1 +float: 1 + +Function: "asin_vlen8_avx2": +float: 1 + Function: "asinh": double: 2 float: 2 diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S new file mode 100644 index 0000000000..57e1d41a7b --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core-sse2.S @@ -0,0 +1,20 @@ +/* SSE2 version of vectorized asin, vector length is 2. + Copyright (C) 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 + . */ + +#define _ZGVbN2v_asin _ZGVbN2v_asin_sse2 +#include "../svml_d_asin2_core.S" diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c new file mode 100644 index 0000000000..e46c3af81e --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core.c @@ -0,0 +1,27 @@ +/* Multiple versions of vectorized asin, vector length is 2. + Copyright (C) 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 + . */ + +#define SYMBOL_NAME _ZGVbN2v_asin +#include "ifunc-mathvec-sse4_1.h" + +libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ()); + +#ifdef SHARED +__hidden_ver1 (_ZGVbN2v_asin, __GI__ZGVbN2v_asin, __redirect__ZGVbN2v_asin) + __attribute__ ((visibility ("hidden"))); +#endif diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S new file mode 100644 index 0000000000..8dbfd46b93 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin2_core_sse4.S @@ -0,0 +1,2765 @@ +/* Function asin vectorized with SSE4. + Copyright (C) 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 + https://www.gnu.org/licenses/. */ + +/* + * ALGORITHM DESCRIPTION: + * + * SelMask = (|x| >= 0.5) ? 1 : 0; + * R = SelMask ? sqrt(0.5 - 0.5*|x|) : |x| + * asin(x) = (SelMask ? (Pi/2 - 2*Poly(R)) : Poly(R))*(-1)^sign(x) + * + */ + +#include + + .text +ENTRY(_ZGVbN2v_asin_sse4) + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-64, %rsp + subq $256, %rsp + movups %xmm8, 112(%rsp) + .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movups __svml_dasin_data_internal(%rip), %xmm8 + movups 64+__svml_dasin_data_internal(%rip), %xmm4 + movups %xmm15, 144(%rsp) + .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22 + +/* x = |arg| */ + movaps %xmm8, %xmm15 + movups %xmm14, 160(%rsp) + .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22 + movaps %xmm0, %xmm14 + andps %xmm14, %xmm15 + +/* Y = 0.5 - 0.5*x */ + movaps %xmm4, %xmm7 + mulpd %xmm15, %xmm7 + movaps %xmm4, %xmm5 + andnps %xmm14, %xmm8 + subpd %xmm7, %xmm5 + +/* S ~ -2*sqrt(Y) */ + cvtpd2ps %xmm5, %xmm3 + movlhps %xmm3, %xmm3 + movaps %xmm5, %xmm0 + rsqrtps %xmm3, %xmm1 + cmpltpd 128+__svml_dasin_data_internal(%rip), %xmm0 + cvtps2pd %xmm1, %xmm2 + movups 256+__svml_dasin_data_internal(%rip), %xmm6 + +/* x^2 */ + movaps %xmm15, %xmm7 + cmpltpd %xmm15, %xmm6 + mulpd %xmm15, %xmm7 + movmskpd %xmm6, %edx + movaps %xmm15, %xmm6 + andnps %xmm2, %xmm0 + movups 448+__svml_dasin_data_internal(%rip), %xmm3 + cmpnltpd %xmm4, %xmm6 + minpd %xmm5, %xmm7 + addpd %xmm5, %xmm5 + movaps %xmm0, %xmm4 + mulpd %xmm0, %xmm4 + mulpd %xmm5, %xmm0 + mulpd %xmm4, %xmm5 + subpd 384+__svml_dasin_data_internal(%rip), %xmm5 + mulpd %xmm5, %xmm3 + addpd 464+__svml_dasin_data_internal(%rip), %xmm3 + mulpd %xmm5, %xmm3 + addpd 480+__svml_dasin_data_internal(%rip), %xmm3 + movaps %xmm5, %xmm4 + mulpd %xmm3, %xmm5 + mulpd %xmm0, %xmm4 + addpd 496+__svml_dasin_data_internal(%rip), %xmm5 + mulpd %xmm5, %xmm4 + +/* polynomial */ + movups 512+__svml_dasin_data_internal(%rip), %xmm5 + movaps %xmm7, %xmm3 + mulpd %xmm7, %xmm5 + mulpd %xmm7, %xmm3 + addpd 528+__svml_dasin_data_internal(%rip), %xmm5 + subpd %xmm0, %xmm4 + mulpd %xmm3, %xmm5 + movups 544+__svml_dasin_data_internal(%rip), %xmm2 + andps %xmm6, %xmm4 + mulpd %xmm7, %xmm2 + movups 576+__svml_dasin_data_internal(%rip), %xmm0 + mulpd %xmm7, %xmm0 + addpd 560+__svml_dasin_data_internal(%rip), %xmm2 + addpd 592+__svml_dasin_data_internal(%rip), %xmm0 + addpd %xmm5, %xmm2 + mulpd %xmm3, %xmm0 + movups 608+__svml_dasin_data_internal(%rip), %xmm1 + movaps %xmm3, %xmm5 + mulpd %xmm7, %xmm1 + mulpd %xmm3, %xmm5 + addpd 624+__svml_dasin_data_internal(%rip), %xmm1 + mulpd %xmm5, %xmm2 + addpd %xmm0, %xmm1 + movups 640+__svml_dasin_data_internal(%rip), %xmm0 + mulpd %xmm7, %xmm0 + addpd %xmm2, %xmm1 + addpd 656+__svml_dasin_data_internal(%rip), %xmm0 + mulpd %xmm3, %xmm1 + addpd %xmm1, %xmm0 + movups 672+__svml_dasin_data_internal(%rip), %xmm1 + movaps %xmm6, %xmm2 + mulpd %xmm7, %xmm1 + mulpd %xmm0, %xmm3 + addpd 688+__svml_dasin_data_internal(%rip), %xmm1 + addpd %xmm3, %xmm1 + mulpd %xmm1, %xmm7 + andnps %xmm15, %xmm2 + orps %xmm4, %xmm2 + mulpd %xmm2, %xmm7 + addpd %xmm7, %xmm2 + movups 704+__svml_dasin_data_internal(%rip), %xmm0 + andps %xmm6, %xmm0 + addpd %xmm2, %xmm0 + pxor %xmm8, %xmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + movups 112(%rsp), %xmm8 + cfi_restore(25) + movups 160(%rsp), %xmm14 + cfi_restore(31) + movups 144(%rsp), %xmm15 + cfi_restore(32) + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_3: + movups %xmm14, 128(%rsp) + movups %xmm0, 192(%rsp) + xorl %eax, %eax + movups %xmm9, 64(%rsp) + movups %xmm10, 48(%rsp) + movups %xmm11, 32(%rsp) + movups %xmm12, 16(%rsp) + movups %xmm13, (%rsp) + movq %rsi, 88(%rsp) + movq %rdi, 80(%rsp) + movq %r12, 104(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 96(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + +.LBL_1_7: + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + incl %r12d + cmpl $2, %r12d + jl .LBL_1_7 + movups 64(%rsp), %xmm9 + cfi_restore(26) + movups 48(%rsp), %xmm10 + cfi_restore(27) + movups 32(%rsp), %xmm11 + cfi_restore(28) + movups 16(%rsp), %xmm12 + cfi_restore(29) + movups (%rsp), %xmm13 + cfi_restore(30) + movq 88(%rsp), %rsi + cfi_restore(4) + movq 80(%rsp), %rdi + cfi_restore(5) + movq 104(%rsp), %r12 + cfi_restore(12) + movq 96(%rsp), %r13 + cfi_restore(13) + movups 192(%rsp), %xmm0 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + lea 128(%rsp,%r12,8), %rdi + lea 192(%rsp,%r12,8), %rsi + call __svml_dasin_cout_rare_internal + jmp .LBL_1_8 + +END(_ZGVbN2v_asin_sse4) + + .align 16,0x90 + +__svml_dasin_cout_rare_internal: + + cfi_startproc + + xorl %eax, %eax + movzwl 6(%rdi), %edx + andl $32752, %edx + cmpl $32752, %edx + je .LBL_2_12 + movq (%rdi), %rdx + movq %rdx, -32(%rsp) + shrq $56, %rdx + movsd 4160+_vmldASinHATab(%rip), %xmm0 + andl $127, %edx + movb %dl, -25(%rsp) + movsd -32(%rsp), %xmm12 + comisd %xmm12, %xmm0 + jb .LBL_2_10 + movsd 4168+_vmldASinHATab(%rip), %xmm1 + comisd %xmm12, %xmm1 + jbe .LBL_2_9 + comisd 4136+_vmldASinHATab(%rip), %xmm12 + jbe .LBL_2_6 + movsd 4104+_vmldASinHATab(%rip), %xmm13 + movaps %xmm12, %xmm5 + mulsd %xmm12, %xmm13 + movaps %xmm12, %xmm7 + movsd %xmm13, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd -32(%rsp), %xmm14 + movsd %xmm14, -56(%rsp) + movsd -48(%rsp), %xmm8 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd 4296+_vmldASinHATab(%rip), %xmm8 + subsd %xmm6, %xmm5 + movsd %xmm5, -56(%rsp) + movaps %xmm12, %xmm5 + movsd -48(%rsp), %xmm9 + movaps %xmm9, %xmm13 + addsd %xmm9, %xmm7 + mulsd %xmm9, %xmm13 + movsd -56(%rsp), %xmm11 + movaps %xmm13, %xmm10 + mulsd %xmm11, %xmm7 + mulsd %xmm13, %xmm1 + addsd %xmm7, %xmm10 + mulsd %xmm10, %xmm8 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm2 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd %xmm13, %xmm2 + addsd 4288+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm0 + addsd 4280+_vmldASinHATab(%rip), %xmm8 + subsd %xmm0, %xmm3 + mulsd %xmm10, %xmm8 + movsd %xmm3, -48(%rsp) + movsd -48(%rsp), %xmm4 + addsd 4272+_vmldASinHATab(%rip), %xmm8 + subsd %xmm4, %xmm13 + mulsd %xmm10, %xmm8 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm6 + mulsd %xmm6, %xmm9 + addsd 4264+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm6, %xmm11 + mulsd %xmm10, %xmm8 + mulsd %xmm9, %xmm1 + addsd 4256+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movaps %xmm9, %xmm3 + movsd -56(%rsp), %xmm14 + movaps %xmm6, %xmm4 + movsd %xmm1, -48(%rsp) + addsd %xmm14, %xmm7 + addsd 4248+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm7, %xmm5 + mulsd %xmm10, %xmm8 + addsd %xmm5, %xmm11 + addsd 4240+_vmldASinHATab(%rip), %xmm8 + movsd -48(%rsp), %xmm2 + mulsd %xmm10, %xmm8 + subsd %xmm9, %xmm2 + addsd %xmm11, %xmm9 + addsd 4232+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm9, %xmm7 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm0 + addsd 4224+_vmldASinHATab(%rip), %xmm8 + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm5 + mulsd %xmm10, %xmm8 + subsd %xmm5, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm5 + movaps %xmm5, %xmm13 + addsd 4216+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm3, %xmm4 + addsd %xmm11, %xmm13 + mulsd %xmm10, %xmm8 + mulsd %xmm13, %xmm6 + addsd 4208+_vmldASinHATab(%rip), %xmm8 + addsd %xmm7, %xmm6 + mulsd %xmm10, %xmm8 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm7 + addsd 4200+_vmldASinHATab(%rip), %xmm8 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm1 + movsd 4184+_vmldASinHATab(%rip), %xmm10 + subsd %xmm4, %xmm1 + mulsd %xmm9, %xmm10 + addsd %xmm6, %xmm4 + movsd %xmm1, -56(%rsp) + movaps %xmm12, %xmm9 + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd 4176+_vmldASinHATab(%rip), %xmm1 + subsd %xmm2, %xmm0 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm11 + mulsd %xmm4, %xmm8 + addsd %xmm3, %xmm9 + mulsd %xmm1, %xmm5 + addsd %xmm11, %xmm10 + movsd %xmm0, -48(%rsp) + addsd %xmm10, %xmm8 + movsd -48(%rsp), %xmm7 + addsd %xmm5, %xmm8 + subsd %xmm7, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd %xmm9, -48(%rsp) + addsd %xmm2, %xmm6 + movsd -48(%rsp), %xmm11 + movsd 4192+_vmldASinHATab(%rip), %xmm4 + subsd %xmm11, %xmm12 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm6 + addsd %xmm12, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movaps %xmm3, %xmm12 + movsd -56(%rsp), %xmm7 + addsd %xmm0, %xmm12 + addsd %xmm7, %xmm8 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm12 + subsd %xmm12, %xmm3 + addsd %xmm3, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm9 + movsd -56(%rsp), %xmm0 + movb 7(%rdi), %dil + addsd %xmm0, %xmm8 + andb $-128, %dil + addsd %xmm8, %xmm9 + addsd %xmm9, %xmm6 + movsd %xmm6, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_6: + comisd 4128+_vmldASinHATab(%rip), %xmm12 + jb .LBL_2_8 + addsd %xmm0, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + mulsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + movb 7(%rdi), %dil + andb $127, %dl + andb $-128, %dil + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_8: + mulsd %xmm12, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + movb 7(%rdi), %dil + andb $-128, %dil + addsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_9: + movaps %xmm0, %xmm9 + movzwl 4166+_vmldASinHATab(%rip), %r9d + pxor %xmm15, %xmm15 + andl $-32753, %r9d + subsd %xmm12, %xmm9 + subsd %xmm0, %xmm15 + mulsd %xmm9, %xmm1 + movsd %xmm1, -32(%rsp) + movzwl -26(%rsp), %ecx + andl $32752, %ecx + shrl $4, %ecx + addl $-1023, %ecx + movl %ecx, %r8d + movl %ecx, %edx + negl %r8d + addl $1023, %r8d + andl $2047, %r8d + shll $4, %r8d + movsd %xmm0, -24(%rsp) + orl %r8d, %r9d + movw %r9w, -18(%rsp) + andl $1, %edx + movsd -24(%rsp), %xmm10 + movl %edx, %r10d + mulsd %xmm10, %xmm1 + lea _vmldASinHATab(%rip), %r8 + movaps %xmm1, %xmm6 + movsd 4112+_vmldASinHATab(%rip), %xmm7 + addsd %xmm1, %xmm6 + jne .LBL_73 + movaps %xmm1, %xmm6 + +.LBL_73: + mulsd %xmm6, %xmm7 + movaps %xmm6, %xmm8 + movaps %xmm7, %xmm11 + subl %edx, %ecx + movsd 4120+_vmldASinHATab(%rip), %xmm13 + subsd %xmm6, %xmm11 + addsd %xmm1, %xmm13 + movsd %xmm11, -56(%rsp) + movsd -56(%rsp), %xmm12 + movsd %xmm13, -16(%rsp) + subsd %xmm12, %xmm7 + movl -16(%rsp), %r11d + movaps %xmm7, %xmm4 + shll $8, %r10d + andl $511, %r11d + addl %r10d, %r11d + subsd %xmm7, %xmm8 + movsd (%r8,%r11,8), %xmm3 + addsd %xmm8, %xmm4 + mulsd %xmm3, %xmm7 + movaps %xmm3, %xmm14 + mulsd %xmm3, %xmm14 + mulsd %xmm14, %xmm4 + movsd 4496+_vmldASinHATab(%rip), %xmm5 + addsd %xmm15, %xmm4 + mulsd %xmm4, %xmm5 + shrl $1, %ecx + addsd 4488+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addl $1023, %ecx + andl $2047, %ecx + addsd 4480+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movzwl 4166+_vmldASinHATab(%rip), %r9d + shll $4, %ecx + andl $-32753, %r9d + movsd %xmm0, -8(%rsp) + orl %ecx, %r9d + movw %r9w, -2(%rsp) + movsd -8(%rsp), %xmm12 + mulsd %xmm12, %xmm7 + addsd 4472+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + mulsd %xmm7, %xmm1 + addsd 4464+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + movsd 4336+_vmldASinHATab(%rip), %xmm13 + subsd %xmm7, %xmm0 + addsd 4456+_vmldASinHATab(%rip), %xmm5 + addsd 4344+_vmldASinHATab(%rip), %xmm13 + mulsd %xmm4, %xmm5 + mulsd %xmm9, %xmm13 + addsd 4448+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + mulsd %xmm6, %xmm5 + movsd %xmm0, -56(%rsp) + addsd %xmm5, %xmm8 + movsd 4440+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm3, %xmm8 + addsd 4432+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm12, %xmm8 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm2 + movsd 4320+_vmldASinHATab(%rip), %xmm14 + subsd %xmm2, %xmm10 + addsd 4424+_vmldASinHATab(%rip), %xmm5 + addsd 4328+_vmldASinHATab(%rip), %xmm14 + mulsd %xmm9, %xmm5 + addsd %xmm13, %xmm14 + addsd 4416+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm14 + mulsd %xmm9, %xmm5 + movsd %xmm10, -48(%rsp) + movaps %xmm9, %xmm2 + movsd -48(%rsp), %xmm11 + movsd 4104+_vmldASinHATab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm9, %xmm3 + addsd 4408+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd 4304+_vmldASinHATab(%rip), %xmm4 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm7 + movsd %xmm3, -48(%rsp) + addsd %xmm7, %xmm8 + addsd 4400+_vmldASinHATab(%rip), %xmm5 + addsd 4312+_vmldASinHATab(%rip), %xmm4 + mulsd %xmm9, %xmm5 + addsd %xmm14, %xmm4 + addsd 4392+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm1 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm9, %xmm1 + addsd 4384+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd %xmm1, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + addsd 4376+_vmldASinHATab(%rip), %xmm5 + subsd %xmm15, %xmm0 + mulsd %xmm9, %xmm5 + movsd %xmm0, -48(%rsp) + movsd 4320+_vmldASinHATab(%rip), %xmm0 + addsd 4368+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4360+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4352+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + addsd %xmm5, %xmm4 + mulsd %xmm4, %xmm8 + movsd -48(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm4 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm13 + mulsd %xmm4, %xmm0 + addsd %xmm9, %xmm4 + mulsd %xmm13, %xmm7 + movsd -56(%rsp), %xmm3 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + mulsd %xmm3, %xmm4 + subsd %xmm13, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm1 + movsd 4304+_vmldASinHATab(%rip), %xmm10 + subsd %xmm1, %xmm11 + movsd %xmm11, -48(%rsp) + movaps %xmm0, %xmm1 + movsd -48(%rsp), %xmm12 + movsd 4304+_vmldASinHATab(%rip), %xmm11 + subsd %xmm12, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm7 + mulsd 4336+_vmldASinHATab(%rip), %xmm7 + movsd -56(%rsp), %xmm2 + addsd %xmm7, %xmm1 + addsd %xmm2, %xmm4 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd %xmm7, -16(%rsp) + subsd %xmm14, %xmm0 + mulsd 4336+_vmldASinHATab(%rip), %xmm4 + addsd %xmm0, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm12 + movsd -56(%rsp), %xmm1 + addsd %xmm12, %xmm10 + movsd %xmm10, -48(%rsp) + movsd -48(%rsp), %xmm15 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm15, %xmm11 + movsd 4320+_vmldASinHATab(%rip), %xmm2 + addsd %xmm11, %xmm12 + mulsd %xmm3, %xmm2 + movsd %xmm12, -56(%rsp) + movsd -48(%rsp), %xmm15 + mulsd %xmm15, %xmm7 + movsd -56(%rsp), %xmm0 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + movsd 4344+_vmldASinHATab(%rip), %xmm3 + subsd %xmm15, %xmm10 + mulsd %xmm9, %xmm3 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm13 + subsd %xmm13, %xmm11 + addsd 4328+_vmldASinHATab(%rip), %xmm3 + movsd %xmm11, -48(%rsp) + movsd -48(%rsp), %xmm14 + mulsd %xmm9, %xmm3 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm7 + addsd %xmm7, %xmm4 + addsd 4312+_vmldASinHATab(%rip), %xmm3 + addsd %xmm2, %xmm4 + addsd %xmm5, %xmm3 + addsd %xmm1, %xmm4 + addsd %xmm0, %xmm4 + movsd 4144+_vmldASinHATab(%rip), %xmm0 + addsd %xmm3, %xmm4 + mulsd %xmm6, %xmm4 + mulsd %xmm10, %xmm6 + addsd %xmm8, %xmm4 + movaps %xmm0, %xmm8 + subsd %xmm6, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm9 + subsd %xmm9, %xmm0 + subsd %xmm6, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + movb 7(%rdi), %dil + andb $-128, %dil + addsd 4152+_vmldASinHATab(%rip), %xmm1 + subsd %xmm4, %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_10: + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + +.LBL_2_11: + ret + +.LBL_2_12: + movsd (%rdi), %xmm0 + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + testl $1048575, 4(%rdi) + jne .LBL_2_11 + cmpl $0, (%rdi) + sete %al + ret + + cfi_endproc + + .type __svml_dasin_cout_rare_internal,@function + .size __svml_dasin_cout_rare_internal,.-__svml_dasin_cout_rare_internal + + .section .rodata, "a" + .align 64 + +__svml_dasin_data_internal: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0 + .long 0 + .long 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 2146435072 + .long 0 + .long 4293918720 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .type __svml_dasin_data_internal,@object + .size __svml_dasin_data_internal,1344 + .align 32 + +_vmldASinHATab: + .long 0 + .long 1072693248 + .long 0 + .long 1072689152 + .long 0 + .long 1072685056 + .long 0 + .long 1072680960 + .long 0 + .long 1072676864 + .long 0 + .long 1072672768 + .long 0 + .long 1072668672 + .long 0 + .long 1072665600 + .long 0 + .long 1072661504 + .long 0 + .long 1072657408 + .long 0 + .long 1072653312 + .long 0 + .long 1072649216 + .long 0 + .long 1072646144 + .long 0 + .long 1072642048 + .long 0 + .long 1072637952 + .long 0 + .long 1072634880 + .long 0 + .long 1072630784 + .long 0 + .long 1072626688 + .long 0 + .long 1072623616 + .long 0 + .long 1072619520 + .long 0 + .long 1072615424 + .long 0 + .long 1072612352 + .long 0 + .long 1072608256 + .long 0 + .long 1072605184 + .long 0 + .long 1072601088 + .long 0 + .long 1072598016 + .long 0 + .long 1072593920 + .long 0 + .long 1072590848 + .long 0 + .long 1072586752 + .long 0 + .long 1072583680 + .long 0 + .long 1072580608 + .long 0 + .long 1072576512 + .long 0 + .long 1072573440 + .long 0 + .long 1072570368 + .long 0 + .long 1072566272 + .long 0 + .long 1072563200 + .long 0 + .long 1072560128 + .long 0 + .long 1072556032 + .long 0 + .long 1072552960 + .long 0 + .long 1072549888 + .long 0 + .long 1072546816 + .long 0 + .long 1072542720 + .long 0 + .long 1072539648 + .long 0 + .long 1072536576 + .long 0 + .long 1072533504 + .long 0 + .long 1072530432 + .long 0 + .long 1072527360 + .long 0 + .long 1072523264 + .long 0 + .long 1072520192 + .long 0 + .long 1072517120 + .long 0 + .long 1072514048 + .long 0 + .long 1072510976 + .long 0 + .long 1072507904 + .long 0 + .long 1072504832 + .long 0 + .long 1072501760 + .long 0 + .long 1072498688 + .long 0 + .long 1072495616 + .long 0 + .long 1072492544 + .long 0 + .long 1072489472 + .long 0 + .long 1072486400 + .long 0 + .long 1072483328 + .long 0 + .long 1072480256 + .long 0 + .long 1072478208 + .long 0 + .long 1072475136 + .long 0 + .long 1072472064 + .long 0 + .long 1072468992 + .long 0 + .long 1072465920 + .long 0 + .long 1072462848 + .long 0 + .long 1072459776 + .long 0 + .long 1072457728 + .long 0 + .long 1072454656 + .long 0 + .long 1072451584 + .long 0 + .long 1072448512 + .long 0 + .long 1072446464 + .long 0 + .long 1072443392 + .long 0 + .long 1072440320 + .long 0 + .long 1072437248 + .long 0 + .long 1072435200 + .long 0 + .long 1072432128 + .long 0 + .long 1072429056 + .long 0 + .long 1072427008 + .long 0 + .long 1072423936 + .long 0 + .long 1072420864 + .long 0 + .long 1072418816 + .long 0 + .long 1072415744 + .long 0 + .long 1072412672 + .long 0 + .long 1072410624 + .long 0 + .long 1072407552 + .long 0 + .long 1072405504 + .long 0 + .long 1072402432 + .long 0 + .long 1072400384 + .long 0 + .long 1072397312 + .long 0 + .long 1072395264 + .long 0 + .long 1072392192 + .long 0 + .long 1072390144 + .long 0 + .long 1072387072 + .long 0 + .long 1072385024 + .long 0 + .long 1072381952 + .long 0 + .long 1072379904 + .long 0 + .long 1072376832 + .long 0 + .long 1072374784 + .long 0 + .long 1072371712 + .long 0 + .long 1072369664 + .long 0 + .long 1072366592 + .long 0 + .long 1072364544 + .long 0 + .long 1072362496 + .long 0 + .long 1072359424 + .long 0 + .long 1072357376 + .long 0 + .long 1072355328 + .long 0 + .long 1072352256 + .long 0 + .long 1072350208 + .long 0 + .long 1072347136 + .long 0 + .long 1072345088 + .long 0 + .long 1072343040 + .long 0 + .long 1072340992 + .long 0 + .long 1072337920 + .long 0 + .long 1072335872 + .long 0 + .long 1072333824 + .long 0 + .long 1072330752 + .long 0 + .long 1072328704 + .long 0 + .long 1072326656 + .long 0 + .long 1072324608 + .long 0 + .long 1072321536 + .long 0 + .long 1072319488 + .long 0 + .long 1072317440 + .long 0 + .long 1072315392 + .long 0 + .long 1072313344 + .long 0 + .long 1072310272 + .long 0 + .long 1072308224 + .long 0 + .long 1072306176 + .long 0 + .long 1072304128 + .long 0 + .long 1072302080 + .long 0 + .long 1072300032 + .long 0 + .long 1072296960 + .long 0 + .long 1072294912 + .long 0 + .long 1072292864 + .long 0 + .long 1072290816 + .long 0 + .long 1072288768 + .long 0 + .long 1072286720 + .long 0 + .long 1072284672 + .long 0 + .long 1072282624 + .long 0 + .long 1072280576 + .long 0 + .long 1072278528 + .long 0 + .long 1072275456 + .long 0 + .long 1072273408 + .long 0 + .long 1072271360 + .long 0 + .long 1072269312 + .long 0 + .long 1072267264 + .long 0 + .long 1072265216 + .long 0 + .long 1072263168 + .long 0 + .long 1072261120 + .long 0 + .long 1072259072 + .long 0 + .long 1072257024 + .long 0 + .long 1072254976 + .long 0 + .long 1072252928 + .long 0 + .long 1072250880 + .long 0 + .long 1072248832 + .long 0 + .long 1072246784 + .long 0 + .long 1072244736 + .long 0 + .long 1072243712 + .long 0 + .long 1072241664 + .long 0 + .long 1072239616 + .long 0 + .long 1072237568 + .long 0 + .long 1072235520 + .long 0 + .long 1072233472 + .long 0 + .long 1072231424 + .long 0 + .long 1072229376 + .long 0 + .long 1072227328 + .long 0 + .long 1072225280 + .long 0 + .long 1072223232 + .long 0 + .long 1072222208 + .long 0 + .long 1072220160 + .long 0 + .long 1072218112 + .long 0 + .long 1072216064 + .long 0 + .long 1072214016 + .long 0 + .long 1072211968 + .long 0 + .long 1072210944 + .long 0 + .long 1072208896 + .long 0 + .long 1072206848 + .long 0 + .long 1072204800 + .long 0 + .long 1072202752 + .long 0 + .long 1072201728 + .long 0 + .long 1072199680 + .long 0 + .long 1072197632 + .long 0 + .long 1072195584 + .long 0 + .long 1072193536 + .long 0 + .long 1072192512 + .long 0 + .long 1072190464 + .long 0 + .long 1072188416 + .long 0 + .long 1072186368 + .long 0 + .long 1072185344 + .long 0 + .long 1072183296 + .long 0 + .long 1072181248 + .long 0 + .long 1072179200 + .long 0 + .long 1072178176 + .long 0 + .long 1072176128 + .long 0 + .long 1072174080 + .long 0 + .long 1072173056 + .long 0 + .long 1072171008 + .long 0 + .long 1072168960 + .long 0 + .long 1072167936 + .long 0 + .long 1072165888 + .long 0 + .long 1072163840 + .long 0 + .long 1072161792 + .long 0 + .long 1072160768 + .long 0 + .long 1072158720 + .long 0 + .long 1072157696 + .long 0 + .long 1072155648 + .long 0 + .long 1072153600 + .long 0 + .long 1072152576 + .long 0 + .long 1072150528 + .long 0 + .long 1072148480 + .long 0 + .long 1072147456 + .long 0 + .long 1072145408 + .long 0 + .long 1072143360 + .long 0 + .long 1072142336 + .long 0 + .long 1072140288 + .long 0 + .long 1072139264 + .long 0 + .long 1072137216 + .long 0 + .long 1072135168 + .long 0 + .long 1072134144 + .long 0 + .long 1072132096 + .long 0 + .long 1072131072 + .long 0 + .long 1072129024 + .long 0 + .long 1072128000 + .long 0 + .long 1072125952 + .long 0 + .long 1072124928 + .long 0 + .long 1072122880 + .long 0 + .long 1072120832 + .long 0 + .long 1072119808 + .long 0 + .long 1072117760 + .long 0 + .long 1072116736 + .long 0 + .long 1072114688 + .long 0 + .long 1072113664 + .long 0 + .long 1072111616 + .long 0 + .long 1072110592 + .long 0 + .long 1072108544 + .long 0 + .long 1072107520 + .long 0 + .long 1072105472 + .long 0 + .long 1072104448 + .long 0 + .long 1072102400 + .long 0 + .long 1072101376 + .long 0 + .long 1072099328 + .long 0 + .long 1072098304 + .long 0 + .long 1072096256 + .long 0 + .long 1072095232 + .long 0 + .long 1072094208 + .long 0 + .long 1072092160 + .long 0 + .long 1072091136 + .long 0 + .long 1072089088 + .long 0 + .long 1072088064 + .long 0 + .long 1072086016 + .long 0 + .long 1072084992 + .long 0 + .long 1072082944 + .long 0 + .long 1072081920 + .long 0 + .long 1072080896 + .long 0 + .long 1072078848 + .long 0 + .long 1072075776 + .long 0 + .long 1072073728 + .long 0 + .long 1072070656 + .long 0 + .long 1072067584 + .long 0 + .long 1072064512 + .long 0 + .long 1072061440 + .long 0 + .long 1072059392 + .long 0 + .long 1072056320 + .long 0 + .long 1072053248 + .long 0 + .long 1072051200 + .long 0 + .long 1072048128 + .long 0 + .long 1072045056 + .long 0 + .long 1072043008 + .long 0 + .long 1072039936 + .long 0 + .long 1072037888 + .long 0 + .long 1072034816 + .long 0 + .long 1072031744 + .long 0 + .long 1072029696 + .long 0 + .long 1072026624 + .long 0 + .long 1072024576 + .long 0 + .long 1072021504 + .long 0 + .long 1072019456 + .long 0 + .long 1072016384 + .long 0 + .long 1072014336 + .long 0 + .long 1072011264 + .long 0 + .long 1072009216 + .long 0 + .long 1072006144 + .long 0 + .long 1072004096 + .long 0 + .long 1072002048 + .long 0 + .long 1071998976 + .long 0 + .long 1071996928 + .long 0 + .long 1071993856 + .long 0 + .long 1071991808 + .long 0 + .long 1071989760 + .long 0 + .long 1071986688 + .long 0 + .long 1071984640 + .long 0 + .long 1071982592 + .long 0 + .long 1071979520 + .long 0 + .long 1071977472 + .long 0 + .long 1071975424 + .long 0 + .long 1071972352 + .long 0 + .long 1071970304 + .long 0 + .long 1071968256 + .long 0 + .long 1071966208 + .long 0 + .long 1071964160 + .long 0 + .long 1071961088 + .long 0 + .long 1071959040 + .long 0 + .long 1071956992 + .long 0 + .long 1071954944 + .long 0 + .long 1071952896 + .long 0 + .long 1071949824 + .long 0 + .long 1071947776 + .long 0 + .long 1071945728 + .long 0 + .long 1071943680 + .long 0 + .long 1071941632 + .long 0 + .long 1071939584 + .long 0 + .long 1071937536 + .long 0 + .long 1071935488 + .long 0 + .long 1071933440 + .long 0 + .long 1071930368 + .long 0 + .long 1071928320 + .long 0 + .long 1071926272 + .long 0 + .long 1071924224 + .long 0 + .long 1071922176 + .long 0 + .long 1071920128 + .long 0 + .long 1071918080 + .long 0 + .long 1071916032 + .long 0 + .long 1071913984 + .long 0 + .long 1071911936 + .long 0 + .long 1071909888 + .long 0 + .long 1071907840 + .long 0 + .long 1071905792 + .long 0 + .long 1071903744 + .long 0 + .long 1071901696 + .long 0 + .long 1071900672 + .long 0 + .long 1071898624 + .long 0 + .long 1071896576 + .long 0 + .long 1071894528 + .long 0 + .long 1071892480 + .long 0 + .long 1071890432 + .long 0 + .long 1071888384 + .long 0 + .long 1071886336 + .long 0 + .long 1071884288 + .long 0 + .long 1071883264 + .long 0 + .long 1071881216 + .long 0 + .long 1071879168 + .long 0 + .long 1071877120 + .long 0 + .long 1071875072 + .long 0 + .long 1071873024 + .long 0 + .long 1071872000 + .long 0 + .long 1071869952 + .long 0 + .long 1071867904 + .long 0 + .long 1071865856 + .long 0 + .long 1071864832 + .long 0 + .long 1071862784 + .long 0 + .long 1071860736 + .long 0 + .long 1071858688 + .long 0 + .long 1071856640 + .long 0 + .long 1071855616 + .long 0 + .long 1071853568 + .long 0 + .long 1071851520 + .long 0 + .long 1071850496 + .long 0 + .long 1071848448 + .long 0 + .long 1071846400 + .long 0 + .long 1071844352 + .long 0 + .long 1071843328 + .long 0 + .long 1071841280 + .long 0 + .long 1071839232 + .long 0 + .long 1071838208 + .long 0 + .long 1071836160 + .long 0 + .long 1071834112 + .long 0 + .long 1071833088 + .long 0 + .long 1071831040 + .long 0 + .long 1071830016 + .long 0 + .long 1071827968 + .long 0 + .long 1071825920 + .long 0 + .long 1071824896 + .long 0 + .long 1071822848 + .long 0 + .long 1071821824 + .long 0 + .long 1071819776 + .long 0 + .long 1071817728 + .long 0 + .long 1071816704 + .long 0 + .long 1071814656 + .long 0 + .long 1071813632 + .long 0 + .long 1071811584 + .long 0 + .long 1071810560 + .long 0 + .long 1071808512 + .long 0 + .long 1071806464 + .long 0 + .long 1071805440 + .long 0 + .long 1071803392 + .long 0 + .long 1071802368 + .long 0 + .long 1071800320 + .long 0 + .long 1071799296 + .long 0 + .long 1071797248 + .long 0 + .long 1071796224 + .long 0 + .long 1071794176 + .long 0 + .long 1071793152 + .long 0 + .long 1071791104 + .long 0 + .long 1071790080 + .long 0 + .long 1071788032 + .long 0 + .long 1071787008 + .long 0 + .long 1071784960 + .long 0 + .long 1071783936 + .long 0 + .long 1071782912 + .long 0 + .long 1071780864 + .long 0 + .long 1071779840 + .long 0 + .long 1071777792 + .long 0 + .long 1071776768 + .long 0 + .long 1071774720 + .long 0 + .long 1071773696 + .long 0 + .long 1071772672 + .long 0 + .long 1071770624 + .long 0 + .long 1071769600 + .long 0 + .long 1071767552 + .long 0 + .long 1071766528 + .long 0 + .long 1071765504 + .long 0 + .long 1071763456 + .long 0 + .long 1071762432 + .long 0 + .long 1071760384 + .long 0 + .long 1071759360 + .long 0 + .long 1071758336 + .long 0 + .long 1071756288 + .long 0 + .long 1071755264 + .long 0 + .long 1071754240 + .long 0 + .long 1071752192 + .long 0 + .long 1071751168 + .long 0 + .long 1071750144 + .long 0 + .long 1071748096 + .long 0 + .long 1071747072 + .long 0 + .long 1071746048 + .long 0 + .long 1071744000 + .long 0 + .long 1071742976 + .long 0 + .long 1071741952 + .long 0 + .long 1071739904 + .long 0 + .long 1071738880 + .long 0 + .long 1071737856 + .long 0 + .long 1071736832 + .long 0 + .long 1071734784 + .long 0 + .long 1071733760 + .long 0 + .long 1071732736 + .long 0 + .long 1071730688 + .long 0 + .long 1071729664 + .long 0 + .long 1071728640 + .long 0 + .long 1071727616 + .long 0 + .long 1071725568 + .long 0 + .long 1071724544 + .long 0 + .long 1071723520 + .long 0 + .long 1071722496 + .long 0 + .long 1071720448 + .long 0 + .long 1071719424 + .long 0 + .long 1071718400 + .long 0 + .long 1071717376 + .long 0 + .long 1071715328 + .long 0 + .long 1071714304 + .long 0 + .long 1071713280 + .long 0 + .long 1071712256 + .long 0 + .long 1071711232 + .long 0 + .long 1071709184 + .long 0 + .long 1071708160 + .long 0 + .long 1071707136 + .long 0 + .long 1071706112 + .long 0 + .long 1071705088 + .long 0 + .long 1071704064 + .long 0 + .long 1071702016 + .long 0 + .long 1071700992 + .long 0 + .long 1071699968 + .long 0 + .long 1071698944 + .long 0 + .long 1071697920 + .long 0 + .long 1071696896 + .long 0 + .long 1071694848 + .long 0 + .long 1071693824 + .long 0 + .long 1071692800 + .long 0 + .long 1071691776 + .long 0 + .long 1071690752 + .long 0 + .long 1071689728 + .long 0 + .long 1071688704 + .long 0 + .long 1071686656 + .long 0 + .long 1071685632 + .long 0 + .long 1071684608 + .long 0 + .long 1071683584 + .long 0 + .long 1071682560 + .long 0 + .long 1071681536 + .long 0 + .long 1071680512 + .long 0 + .long 1071679488 + .long 0 + .long 1071677440 + .long 0 + .long 1071676416 + .long 0 + .long 1071675392 + .long 0 + .long 1071674368 + .long 0 + .long 1071673344 + .long 0 + .long 1071672320 + .long 0 + .long 1071671296 + .long 0 + .long 1071670272 + .long 0 + .long 1071669248 + .long 0 + .long 1071668224 + .long 0 + .long 1071667200 + .long 0 + .long 1071666176 + .long 0 + .long 1071665152 + .long 0 + .long 1071663104 + .long 0 + .long 1071662080 + .long 0 + .long 1071661056 + .long 0 + .long 1071660032 + .long 0 + .long 1071659008 + .long 0 + .long 1071657984 + .long 0 + .long 1071656960 + .long 0 + .long 1071655936 + .long 0 + .long 1071654912 + .long 0 + .long 1071653888 + .long 0 + .long 1071652864 + .long 0 + .long 1071651840 + .long 0 + .long 1071650816 + .long 0 + .long 1071649792 + .long 0 + .long 1071648768 + .long 0 + .long 1071647744 + .long 0 + .long 1071646720 + .long 0 + .long 1071645696 + .long 0 + .long 1071644672 + .long 0 + .long 1101004800 + .long 1073741824 + .long 1095761920 + .long 256 + .long 1118830592 + .long 0 + .long 1048576 + .long 0 + .long 1017118720 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 0 + .long 1072693248 + .long 0 + .long 1071644672 + .long 1476395008 + .long 1069897045 + .long 1768958041 + .long 3189069141 + .long 805306368 + .long 1068708659 + .long 3580333578 + .long 1040816593 + .long 3067382784 + .long 1067899757 + .long 3397590151 + .long 1067392113 + .long 2939529726 + .long 1066854585 + .long 1423429166 + .long 1066517752 + .long 1775218934 + .long 1066178574 + .long 1185392460 + .long 1065859647 + .long 289998670 + .long 1065577550 + .long 3179807072 + .long 1065648121 + .long 3781007284 + .long 1061576176 + .long 2482106687 + .long 1067019199 + .long 763519713 + .long 3214591591 + .long 3695107454 + .long 1067530646 + .long 0 + .long 1073741824 + .long 1124791109 + .long 1006764147 + .long 1476395008 + .long 1069897045 + .long 1953913876 + .long 3189069141 + .long 805306368 + .long 1067660083 + .long 165110192 + .long 1039768033 + .long 3067304082 + .long 1065802605 + .long 3404727379 + .long 1064246385 + .long 2737480376 + .long 1062660281 + .long 933797922 + .long 1061274873 + .long 1475716730 + .long 1059887095 + .long 1511619763 + .long 1058519827 + .long 556024211 + .long 1057187555 + .long 3482101045 + .long 1056217350 + .long 1174622859 + .long 1050762633 + .long 899668651 + .long 1055506366 + .long 1081094694 + .long 3202035365 + .long 2559814773 + .long 1053906576 + .long 0 + .long 3219128320 + .long 0 + .long 1071120384 + .long 0 + .long 3218341888 + .long 0 + .long 1070694400 + .long 0 + .long 3218046976 + .long 0 + .long 1070391296 + .long 0 + .long 3217739776 + .type _vmldASinHATab,@object + .size _vmldASinHATab,4504 diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S new file mode 100644 index 0000000000..1006fddc59 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core-sse.S @@ -0,0 +1,20 @@ +/* SSE version of vectorized asin, vector length is 4. + Copyright (C) 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 + . */ + +#define _ZGVdN4v_asin _ZGVdN4v_asin_sse_wrapper +#include "../svml_d_asin4_core.S" diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c new file mode 100644 index 0000000000..b896516f5e --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core.c @@ -0,0 +1,27 @@ +/* Multiple versions of vectorized asin, vector length is 4. + Copyright (C) 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 + . */ + +#define SYMBOL_NAME _ZGVdN4v_asin +#include "ifunc-mathvec-avx2.h" + +libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ()); + +#ifdef SHARED +__hidden_ver1 (_ZGVdN4v_asin, __GI__ZGVdN4v_asin, __redirect__ZGVdN4v_asin) + __attribute__ ((visibility ("hidden"))); +#endif diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S new file mode 100644 index 0000000000..08cf09101e --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin4_core_avx2.S @@ -0,0 +1,2647 @@ +/* Function asin vectorized with AVX2. + Copyright (C) 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 + https://www.gnu.org/licenses/. */ + +/* + * ALGORITHM DESCRIPTION: + * + * SelMask = (|x| >= 0.5) ? 1 : 0; + * R = SelMask ? sqrt(0.5 - 0.5*|x|) : |x| + * asin(x) = (SelMask ? (Pi/2 - 2*Poly(R)) : Poly(R))*(-1)^sign(x) + * + */ + +#include + + .text +ENTRY(_ZGVdN4v_asin_avx2) + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-64, %rsp + subq $384, %rsp + vmovups %ymm8, 32(%rsp) + vmovupd __svml_dasin_data_internal(%rip), %ymm6 + .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22 + vmovupd 64+__svml_dasin_data_internal(%rip), %ymm8 + vmovups %ymm11, 192(%rsp) + vmovups %ymm10, 160(%rsp) + vmovups %ymm9, 96(%rsp) + vmovupd 256+__svml_dasin_data_internal(%rip), %ymm1 + vmovups %ymm12, 224(%rsp) + vmovups %ymm13, 256(%rsp) + vmovups %ymm14, 288(%rsp) + vmovups %ymm15, 320(%rsp) + vmovapd %ymm0, %ymm5 + +/* x = |arg| */ + vandpd %ymm5, %ymm6, %ymm4 + .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 + +/* Y = 0.5 - 0.5*x */ + vmovapd %ymm8, %ymm11 + vfnmadd231pd %ymm4, %ymm8, %ymm11 + +/* x^2 */ + vmulpd %ymm4, %ymm4, %ymm7 + vcmplt_oqpd %ymm4, %ymm1, %ymm0 + +/* S ~ -2*sqrt(Y) */ + vcmplt_oqpd 128+__svml_dasin_data_internal(%rip), %ymm11, %ymm9 + vminpd %ymm11, %ymm7, %ymm2 + vaddpd %ymm11, %ymm11, %ymm14 + vcmpnlt_uqpd %ymm8, %ymm4, %ymm1 + vcvtpd2ps %ymm11, %xmm7 + vmovupd 768+__svml_dasin_data_internal(%rip), %ymm8 + vmovupd 832+__svml_dasin_data_internal(%rip), %ymm11 + vfmadd213pd 800+__svml_dasin_data_internal(%rip), %ymm2, %ymm8 + vfmadd213pd 864+__svml_dasin_data_internal(%rip), %ymm2, %ymm11 + vandnpd %ymm5, %ymm6, %ymm3 + vrsqrtps %xmm7, %xmm6 + vmovupd 640+__svml_dasin_data_internal(%rip), %ymm7 + vcvtps2pd %xmm6, %ymm10 + vfmadd213pd 672+__svml_dasin_data_internal(%rip), %ymm2, %ymm7 + vandnpd %ymm10, %ymm9, %ymm12 + vmulpd %ymm12, %ymm12, %ymm13 + vmulpd %ymm14, %ymm12, %ymm6 + vmovupd 704+__svml_dasin_data_internal(%rip), %ymm10 + vmulpd %ymm2, %ymm2, %ymm12 + vfmsub213pd 384+__svml_dasin_data_internal(%rip), %ymm13, %ymm14 + vmovupd 896+__svml_dasin_data_internal(%rip), %ymm13 + vfmadd213pd 736+__svml_dasin_data_internal(%rip), %ymm2, %ymm10 + vmulpd %ymm12, %ymm12, %ymm9 + vmulpd %ymm14, %ymm6, %ymm15 + vfmadd213pd 928+__svml_dasin_data_internal(%rip), %ymm2, %ymm13 + vfmadd213pd %ymm8, %ymm12, %ymm10 + vmovmskpd %ymm0, %edx + vmovupd 448+__svml_dasin_data_internal(%rip), %ymm0 + vfmadd213pd 480+__svml_dasin_data_internal(%rip), %ymm14, %ymm0 + vfmadd213pd 512+__svml_dasin_data_internal(%rip), %ymm14, %ymm0 + vfmadd213pd 544+__svml_dasin_data_internal(%rip), %ymm14, %ymm0 + +/* polynomial */ + vmovupd 576+__svml_dasin_data_internal(%rip), %ymm14 + vfmsub213pd %ymm6, %ymm15, %ymm0 + vfmadd213pd 608+__svml_dasin_data_internal(%rip), %ymm2, %ymm14 + vblendvpd %ymm1, %ymm0, %ymm4, %ymm4 + vfmadd213pd %ymm7, %ymm12, %ymm14 + vfmadd213pd %ymm10, %ymm9, %ymm14 + vfmadd213pd %ymm11, %ymm12, %ymm14 + vfmadd213pd %ymm13, %ymm12, %ymm14 + vmulpd %ymm14, %ymm2, %ymm6 + vfmadd213pd %ymm4, %ymm4, %ymm6 + vandpd 960+__svml_dasin_data_internal(%rip), %ymm1, %ymm2 + vaddpd %ymm6, %ymm2, %ymm0 + vxorpd %ymm3, %ymm0, %ymm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + vmovups 32(%rsp), %ymm8 + cfi_restore(91) + vmovups 96(%rsp), %ymm9 + cfi_restore(92) + vmovups 160(%rsp), %ymm10 + cfi_restore(93) + vmovups 192(%rsp), %ymm11 + cfi_restore(94) + vmovups 224(%rsp), %ymm12 + cfi_restore(95) + vmovups 256(%rsp), %ymm13 + cfi_restore(96) + vmovups 288(%rsp), %ymm14 + cfi_restore(97) + vmovups 320(%rsp), %ymm15 + cfi_restore(98) + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_3: + vmovupd %ymm5, 64(%rsp) + vmovupd %ymm0, 128(%rsp) + je .LBL_1_2 + xorl %eax, %eax + vzeroupper + movq %rsi, 8(%rsp) + movq %rdi, (%rsp) + movq %r12, 24(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 16(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22 + movl %edx, %r13d + +.LBL_1_7: + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + incl %r12d + cmpl $4, %r12d + jl .LBL_1_7 + movq 8(%rsp), %rsi + cfi_restore(4) + movq (%rsp), %rdi + cfi_restore(5) + movq 24(%rsp), %r12 + cfi_restore(12) + movq 16(%rsp), %r13 + cfi_restore(13) + vmovupd 128(%rsp), %ymm0 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22 + +.LBL_1_10: + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + call __svml_dasin_cout_rare_internal + jmp .LBL_1_8 + +END(_ZGVdN4v_asin_avx2) + + .align 16,0x90 + +__svml_dasin_cout_rare_internal: + + cfi_startproc + + xorl %eax, %eax + movzwl 6(%rdi), %edx + andl $32752, %edx + cmpl $32752, %edx + je .LBL_2_12 + movq (%rdi), %rdx + movq %rdx, -32(%rsp) + shrq $56, %rdx + movsd 4160+_vmldASinHATab(%rip), %xmm0 + andl $127, %edx + movb %dl, -25(%rsp) + movsd -32(%rsp), %xmm12 + comisd %xmm12, %xmm0 + jb .LBL_2_10 + movsd 4168+_vmldASinHATab(%rip), %xmm1 + comisd %xmm12, %xmm1 + jbe .LBL_2_9 + comisd 4136+_vmldASinHATab(%rip), %xmm12 + jbe .LBL_2_6 + movsd 4104+_vmldASinHATab(%rip), %xmm13 + movaps %xmm12, %xmm5 + mulsd %xmm12, %xmm13 + movaps %xmm12, %xmm7 + movsd %xmm13, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd -32(%rsp), %xmm14 + movsd %xmm14, -56(%rsp) + movsd -48(%rsp), %xmm8 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd 4296+_vmldASinHATab(%rip), %xmm8 + subsd %xmm6, %xmm5 + movsd %xmm5, -56(%rsp) + movaps %xmm12, %xmm5 + movsd -48(%rsp), %xmm9 + movaps %xmm9, %xmm13 + addsd %xmm9, %xmm7 + mulsd %xmm9, %xmm13 + movsd -56(%rsp), %xmm11 + movaps %xmm13, %xmm10 + mulsd %xmm11, %xmm7 + mulsd %xmm13, %xmm1 + addsd %xmm7, %xmm10 + mulsd %xmm10, %xmm8 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm2 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd %xmm13, %xmm2 + addsd 4288+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm0 + addsd 4280+_vmldASinHATab(%rip), %xmm8 + subsd %xmm0, %xmm3 + mulsd %xmm10, %xmm8 + movsd %xmm3, -48(%rsp) + movsd -48(%rsp), %xmm4 + addsd 4272+_vmldASinHATab(%rip), %xmm8 + subsd %xmm4, %xmm13 + mulsd %xmm10, %xmm8 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm6 + mulsd %xmm6, %xmm9 + addsd 4264+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm6, %xmm11 + mulsd %xmm10, %xmm8 + mulsd %xmm9, %xmm1 + addsd 4256+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movaps %xmm9, %xmm3 + movsd -56(%rsp), %xmm14 + movaps %xmm6, %xmm4 + movsd %xmm1, -48(%rsp) + addsd %xmm14, %xmm7 + addsd 4248+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm7, %xmm5 + mulsd %xmm10, %xmm8 + addsd %xmm5, %xmm11 + addsd 4240+_vmldASinHATab(%rip), %xmm8 + movsd -48(%rsp), %xmm2 + mulsd %xmm10, %xmm8 + subsd %xmm9, %xmm2 + addsd %xmm11, %xmm9 + addsd 4232+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm9, %xmm7 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm0 + addsd 4224+_vmldASinHATab(%rip), %xmm8 + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm5 + mulsd %xmm10, %xmm8 + subsd %xmm5, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm5 + movaps %xmm5, %xmm13 + addsd 4216+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm3, %xmm4 + addsd %xmm11, %xmm13 + mulsd %xmm10, %xmm8 + mulsd %xmm13, %xmm6 + addsd 4208+_vmldASinHATab(%rip), %xmm8 + addsd %xmm7, %xmm6 + mulsd %xmm10, %xmm8 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm7 + addsd 4200+_vmldASinHATab(%rip), %xmm8 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm1 + movsd 4184+_vmldASinHATab(%rip), %xmm10 + subsd %xmm4, %xmm1 + mulsd %xmm9, %xmm10 + addsd %xmm6, %xmm4 + movsd %xmm1, -56(%rsp) + movaps %xmm12, %xmm9 + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd 4176+_vmldASinHATab(%rip), %xmm1 + subsd %xmm2, %xmm0 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm11 + mulsd %xmm4, %xmm8 + addsd %xmm3, %xmm9 + mulsd %xmm1, %xmm5 + addsd %xmm11, %xmm10 + movsd %xmm0, -48(%rsp) + addsd %xmm10, %xmm8 + movsd -48(%rsp), %xmm7 + addsd %xmm5, %xmm8 + subsd %xmm7, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd %xmm9, -48(%rsp) + addsd %xmm2, %xmm6 + movsd -48(%rsp), %xmm11 + movsd 4192+_vmldASinHATab(%rip), %xmm4 + subsd %xmm11, %xmm12 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm6 + addsd %xmm12, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movaps %xmm3, %xmm12 + movsd -56(%rsp), %xmm7 + addsd %xmm0, %xmm12 + addsd %xmm7, %xmm8 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm12 + subsd %xmm12, %xmm3 + addsd %xmm3, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm9 + movsd -56(%rsp), %xmm0 + movb 7(%rdi), %dil + addsd %xmm0, %xmm8 + andb $-128, %dil + addsd %xmm8, %xmm9 + addsd %xmm9, %xmm6 + movsd %xmm6, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_6: + comisd 4128+_vmldASinHATab(%rip), %xmm12 + jb .LBL_2_8 + addsd %xmm0, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + mulsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + movb 7(%rdi), %dil + andb $127, %dl + andb $-128, %dil + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_8: + mulsd %xmm12, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + movb 7(%rdi), %dil + andb $-128, %dil + addsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_9: + movaps %xmm0, %xmm9 + movzwl 4166+_vmldASinHATab(%rip), %r9d + pxor %xmm15, %xmm15 + andl $-32753, %r9d + subsd %xmm12, %xmm9 + subsd %xmm0, %xmm15 + mulsd %xmm9, %xmm1 + movsd %xmm1, -32(%rsp) + movzwl -26(%rsp), %ecx + andl $32752, %ecx + shrl $4, %ecx + addl $-1023, %ecx + movl %ecx, %r8d + movl %ecx, %edx + negl %r8d + addl $1023, %r8d + andl $2047, %r8d + shll $4, %r8d + movsd %xmm0, -24(%rsp) + orl %r8d, %r9d + movw %r9w, -18(%rsp) + andl $1, %edx + movsd -24(%rsp), %xmm10 + movl %edx, %r10d + mulsd %xmm10, %xmm1 + lea _vmldASinHATab(%rip), %r8 + movaps %xmm1, %xmm6 + movsd 4112+_vmldASinHATab(%rip), %xmm7 + addsd %xmm1, %xmm6 + jne .LBL_73 + movaps %xmm1, %xmm6 + +.LBL_73: + mulsd %xmm6, %xmm7 + movaps %xmm6, %xmm8 + movaps %xmm7, %xmm11 + subl %edx, %ecx + movsd 4120+_vmldASinHATab(%rip), %xmm13 + subsd %xmm6, %xmm11 + addsd %xmm1, %xmm13 + movsd %xmm11, -56(%rsp) + movsd -56(%rsp), %xmm12 + movsd %xmm13, -16(%rsp) + subsd %xmm12, %xmm7 + movl -16(%rsp), %r11d + movaps %xmm7, %xmm4 + shll $8, %r10d + andl $511, %r11d + addl %r10d, %r11d + subsd %xmm7, %xmm8 + movsd (%r8,%r11,8), %xmm3 + addsd %xmm8, %xmm4 + mulsd %xmm3, %xmm7 + movaps %xmm3, %xmm14 + mulsd %xmm3, %xmm14 + mulsd %xmm14, %xmm4 + movsd 4496+_vmldASinHATab(%rip), %xmm5 + addsd %xmm15, %xmm4 + mulsd %xmm4, %xmm5 + shrl $1, %ecx + addsd 4488+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addl $1023, %ecx + andl $2047, %ecx + addsd 4480+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movzwl 4166+_vmldASinHATab(%rip), %r9d + shll $4, %ecx + andl $-32753, %r9d + movsd %xmm0, -8(%rsp) + orl %ecx, %r9d + movw %r9w, -2(%rsp) + movsd -8(%rsp), %xmm12 + mulsd %xmm12, %xmm7 + addsd 4472+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + mulsd %xmm7, %xmm1 + addsd 4464+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + movsd 4336+_vmldASinHATab(%rip), %xmm13 + subsd %xmm7, %xmm0 + addsd 4456+_vmldASinHATab(%rip), %xmm5 + addsd 4344+_vmldASinHATab(%rip), %xmm13 + mulsd %xmm4, %xmm5 + mulsd %xmm9, %xmm13 + addsd 4448+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + mulsd %xmm6, %xmm5 + movsd %xmm0, -56(%rsp) + addsd %xmm5, %xmm8 + movsd 4440+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm3, %xmm8 + addsd 4432+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm12, %xmm8 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm2 + movsd 4320+_vmldASinHATab(%rip), %xmm14 + subsd %xmm2, %xmm10 + addsd 4424+_vmldASinHATab(%rip), %xmm5 + addsd 4328+_vmldASinHATab(%rip), %xmm14 + mulsd %xmm9, %xmm5 + addsd %xmm13, %xmm14 + addsd 4416+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm14 + mulsd %xmm9, %xmm5 + movsd %xmm10, -48(%rsp) + movaps %xmm9, %xmm2 + movsd -48(%rsp), %xmm11 + movsd 4104+_vmldASinHATab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm9, %xmm3 + addsd 4408+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd 4304+_vmldASinHATab(%rip), %xmm4 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm7 + movsd %xmm3, -48(%rsp) + addsd %xmm7, %xmm8 + addsd 4400+_vmldASinHATab(%rip), %xmm5 + addsd 4312+_vmldASinHATab(%rip), %xmm4 + mulsd %xmm9, %xmm5 + addsd %xmm14, %xmm4 + addsd 4392+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm1 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm9, %xmm1 + addsd 4384+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd %xmm1, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + addsd 4376+_vmldASinHATab(%rip), %xmm5 + subsd %xmm15, %xmm0 + mulsd %xmm9, %xmm5 + movsd %xmm0, -48(%rsp) + movsd 4320+_vmldASinHATab(%rip), %xmm0 + addsd 4368+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4360+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4352+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + addsd %xmm5, %xmm4 + mulsd %xmm4, %xmm8 + movsd -48(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm4 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm13 + mulsd %xmm4, %xmm0 + addsd %xmm9, %xmm4 + mulsd %xmm13, %xmm7 + movsd -56(%rsp), %xmm3 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + mulsd %xmm3, %xmm4 + subsd %xmm13, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm1 + movsd 4304+_vmldASinHATab(%rip), %xmm10 + subsd %xmm1, %xmm11 + movsd %xmm11, -48(%rsp) + movaps %xmm0, %xmm1 + movsd -48(%rsp), %xmm12 + movsd 4304+_vmldASinHATab(%rip), %xmm11 + subsd %xmm12, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm7 + mulsd 4336+_vmldASinHATab(%rip), %xmm7 + movsd -56(%rsp), %xmm2 + addsd %xmm7, %xmm1 + addsd %xmm2, %xmm4 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd %xmm7, -16(%rsp) + subsd %xmm14, %xmm0 + mulsd 4336+_vmldASinHATab(%rip), %xmm4 + addsd %xmm0, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm12 + movsd -56(%rsp), %xmm1 + addsd %xmm12, %xmm10 + movsd %xmm10, -48(%rsp) + movsd -48(%rsp), %xmm15 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm15, %xmm11 + movsd 4320+_vmldASinHATab(%rip), %xmm2 + addsd %xmm11, %xmm12 + mulsd %xmm3, %xmm2 + movsd %xmm12, -56(%rsp) + movsd -48(%rsp), %xmm15 + mulsd %xmm15, %xmm7 + movsd -56(%rsp), %xmm0 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + movsd 4344+_vmldASinHATab(%rip), %xmm3 + subsd %xmm15, %xmm10 + mulsd %xmm9, %xmm3 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm13 + subsd %xmm13, %xmm11 + addsd 4328+_vmldASinHATab(%rip), %xmm3 + movsd %xmm11, -48(%rsp) + movsd -48(%rsp), %xmm14 + mulsd %xmm9, %xmm3 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm7 + addsd %xmm7, %xmm4 + addsd 4312+_vmldASinHATab(%rip), %xmm3 + addsd %xmm2, %xmm4 + addsd %xmm5, %xmm3 + addsd %xmm1, %xmm4 + addsd %xmm0, %xmm4 + movsd 4144+_vmldASinHATab(%rip), %xmm0 + addsd %xmm3, %xmm4 + mulsd %xmm6, %xmm4 + mulsd %xmm10, %xmm6 + addsd %xmm8, %xmm4 + movaps %xmm0, %xmm8 + subsd %xmm6, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm9 + subsd %xmm9, %xmm0 + subsd %xmm6, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + movb 7(%rdi), %dil + andb $-128, %dil + addsd 4152+_vmldASinHATab(%rip), %xmm1 + subsd %xmm4, %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_10: + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + +.LBL_2_11: + ret + +.LBL_2_12: + movsd (%rdi), %xmm0 + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + testl $1048575, 4(%rdi) + jne .LBL_2_11 + cmpl $0, (%rdi) + sete %al + ret + + cfi_endproc + + .type __svml_dasin_cout_rare_internal,@function + .size __svml_dasin_cout_rare_internal,.-__svml_dasin_cout_rare_internal + + .section .rodata, "a" + .align 64 + +__svml_dasin_data_internal: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 0 + .long 2146435072 + .long 0 + .long 4293918720 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .type __svml_dasin_data_internal,@object + .size __svml_dasin_data_internal,1664 + .align 32 + +_vmldASinHATab: + .long 0 + .long 1072693248 + .long 0 + .long 1072689152 + .long 0 + .long 1072685056 + .long 0 + .long 1072680960 + .long 0 + .long 1072676864 + .long 0 + .long 1072672768 + .long 0 + .long 1072668672 + .long 0 + .long 1072665600 + .long 0 + .long 1072661504 + .long 0 + .long 1072657408 + .long 0 + .long 1072653312 + .long 0 + .long 1072649216 + .long 0 + .long 1072646144 + .long 0 + .long 1072642048 + .long 0 + .long 1072637952 + .long 0 + .long 1072634880 + .long 0 + .long 1072630784 + .long 0 + .long 1072626688 + .long 0 + .long 1072623616 + .long 0 + .long 1072619520 + .long 0 + .long 1072615424 + .long 0 + .long 1072612352 + .long 0 + .long 1072608256 + .long 0 + .long 1072605184 + .long 0 + .long 1072601088 + .long 0 + .long 1072598016 + .long 0 + .long 1072593920 + .long 0 + .long 1072590848 + .long 0 + .long 1072586752 + .long 0 + .long 1072583680 + .long 0 + .long 1072580608 + .long 0 + .long 1072576512 + .long 0 + .long 1072573440 + .long 0 + .long 1072570368 + .long 0 + .long 1072566272 + .long 0 + .long 1072563200 + .long 0 + .long 1072560128 + .long 0 + .long 1072556032 + .long 0 + .long 1072552960 + .long 0 + .long 1072549888 + .long 0 + .long 1072546816 + .long 0 + .long 1072542720 + .long 0 + .long 1072539648 + .long 0 + .long 1072536576 + .long 0 + .long 1072533504 + .long 0 + .long 1072530432 + .long 0 + .long 1072527360 + .long 0 + .long 1072523264 + .long 0 + .long 1072520192 + .long 0 + .long 1072517120 + .long 0 + .long 1072514048 + .long 0 + .long 1072510976 + .long 0 + .long 1072507904 + .long 0 + .long 1072504832 + .long 0 + .long 1072501760 + .long 0 + .long 1072498688 + .long 0 + .long 1072495616 + .long 0 + .long 1072492544 + .long 0 + .long 1072489472 + .long 0 + .long 1072486400 + .long 0 + .long 1072483328 + .long 0 + .long 1072480256 + .long 0 + .long 1072478208 + .long 0 + .long 1072475136 + .long 0 + .long 1072472064 + .long 0 + .long 1072468992 + .long 0 + .long 1072465920 + .long 0 + .long 1072462848 + .long 0 + .long 1072459776 + .long 0 + .long 1072457728 + .long 0 + .long 1072454656 + .long 0 + .long 1072451584 + .long 0 + .long 1072448512 + .long 0 + .long 1072446464 + .long 0 + .long 1072443392 + .long 0 + .long 1072440320 + .long 0 + .long 1072437248 + .long 0 + .long 1072435200 + .long 0 + .long 1072432128 + .long 0 + .long 1072429056 + .long 0 + .long 1072427008 + .long 0 + .long 1072423936 + .long 0 + .long 1072420864 + .long 0 + .long 1072418816 + .long 0 + .long 1072415744 + .long 0 + .long 1072412672 + .long 0 + .long 1072410624 + .long 0 + .long 1072407552 + .long 0 + .long 1072405504 + .long 0 + .long 1072402432 + .long 0 + .long 1072400384 + .long 0 + .long 1072397312 + .long 0 + .long 1072395264 + .long 0 + .long 1072392192 + .long 0 + .long 1072390144 + .long 0 + .long 1072387072 + .long 0 + .long 1072385024 + .long 0 + .long 1072381952 + .long 0 + .long 1072379904 + .long 0 + .long 1072376832 + .long 0 + .long 1072374784 + .long 0 + .long 1072371712 + .long 0 + .long 1072369664 + .long 0 + .long 1072366592 + .long 0 + .long 1072364544 + .long 0 + .long 1072362496 + .long 0 + .long 1072359424 + .long 0 + .long 1072357376 + .long 0 + .long 1072355328 + .long 0 + .long 1072352256 + .long 0 + .long 1072350208 + .long 0 + .long 1072347136 + .long 0 + .long 1072345088 + .long 0 + .long 1072343040 + .long 0 + .long 1072340992 + .long 0 + .long 1072337920 + .long 0 + .long 1072335872 + .long 0 + .long 1072333824 + .long 0 + .long 1072330752 + .long 0 + .long 1072328704 + .long 0 + .long 1072326656 + .long 0 + .long 1072324608 + .long 0 + .long 1072321536 + .long 0 + .long 1072319488 + .long 0 + .long 1072317440 + .long 0 + .long 1072315392 + .long 0 + .long 1072313344 + .long 0 + .long 1072310272 + .long 0 + .long 1072308224 + .long 0 + .long 1072306176 + .long 0 + .long 1072304128 + .long 0 + .long 1072302080 + .long 0 + .long 1072300032 + .long 0 + .long 1072296960 + .long 0 + .long 1072294912 + .long 0 + .long 1072292864 + .long 0 + .long 1072290816 + .long 0 + .long 1072288768 + .long 0 + .long 1072286720 + .long 0 + .long 1072284672 + .long 0 + .long 1072282624 + .long 0 + .long 1072280576 + .long 0 + .long 1072278528 + .long 0 + .long 1072275456 + .long 0 + .long 1072273408 + .long 0 + .long 1072271360 + .long 0 + .long 1072269312 + .long 0 + .long 1072267264 + .long 0 + .long 1072265216 + .long 0 + .long 1072263168 + .long 0 + .long 1072261120 + .long 0 + .long 1072259072 + .long 0 + .long 1072257024 + .long 0 + .long 1072254976 + .long 0 + .long 1072252928 + .long 0 + .long 1072250880 + .long 0 + .long 1072248832 + .long 0 + .long 1072246784 + .long 0 + .long 1072244736 + .long 0 + .long 1072243712 + .long 0 + .long 1072241664 + .long 0 + .long 1072239616 + .long 0 + .long 1072237568 + .long 0 + .long 1072235520 + .long 0 + .long 1072233472 + .long 0 + .long 1072231424 + .long 0 + .long 1072229376 + .long 0 + .long 1072227328 + .long 0 + .long 1072225280 + .long 0 + .long 1072223232 + .long 0 + .long 1072222208 + .long 0 + .long 1072220160 + .long 0 + .long 1072218112 + .long 0 + .long 1072216064 + .long 0 + .long 1072214016 + .long 0 + .long 1072211968 + .long 0 + .long 1072210944 + .long 0 + .long 1072208896 + .long 0 + .long 1072206848 + .long 0 + .long 1072204800 + .long 0 + .long 1072202752 + .long 0 + .long 1072201728 + .long 0 + .long 1072199680 + .long 0 + .long 1072197632 + .long 0 + .long 1072195584 + .long 0 + .long 1072193536 + .long 0 + .long 1072192512 + .long 0 + .long 1072190464 + .long 0 + .long 1072188416 + .long 0 + .long 1072186368 + .long 0 + .long 1072185344 + .long 0 + .long 1072183296 + .long 0 + .long 1072181248 + .long 0 + .long 1072179200 + .long 0 + .long 1072178176 + .long 0 + .long 1072176128 + .long 0 + .long 1072174080 + .long 0 + .long 1072173056 + .long 0 + .long 1072171008 + .long 0 + .long 1072168960 + .long 0 + .long 1072167936 + .long 0 + .long 1072165888 + .long 0 + .long 1072163840 + .long 0 + .long 1072161792 + .long 0 + .long 1072160768 + .long 0 + .long 1072158720 + .long 0 + .long 1072157696 + .long 0 + .long 1072155648 + .long 0 + .long 1072153600 + .long 0 + .long 1072152576 + .long 0 + .long 1072150528 + .long 0 + .long 1072148480 + .long 0 + .long 1072147456 + .long 0 + .long 1072145408 + .long 0 + .long 1072143360 + .long 0 + .long 1072142336 + .long 0 + .long 1072140288 + .long 0 + .long 1072139264 + .long 0 + .long 1072137216 + .long 0 + .long 1072135168 + .long 0 + .long 1072134144 + .long 0 + .long 1072132096 + .long 0 + .long 1072131072 + .long 0 + .long 1072129024 + .long 0 + .long 1072128000 + .long 0 + .long 1072125952 + .long 0 + .long 1072124928 + .long 0 + .long 1072122880 + .long 0 + .long 1072120832 + .long 0 + .long 1072119808 + .long 0 + .long 1072117760 + .long 0 + .long 1072116736 + .long 0 + .long 1072114688 + .long 0 + .long 1072113664 + .long 0 + .long 1072111616 + .long 0 + .long 1072110592 + .long 0 + .long 1072108544 + .long 0 + .long 1072107520 + .long 0 + .long 1072105472 + .long 0 + .long 1072104448 + .long 0 + .long 1072102400 + .long 0 + .long 1072101376 + .long 0 + .long 1072099328 + .long 0 + .long 1072098304 + .long 0 + .long 1072096256 + .long 0 + .long 1072095232 + .long 0 + .long 1072094208 + .long 0 + .long 1072092160 + .long 0 + .long 1072091136 + .long 0 + .long 1072089088 + .long 0 + .long 1072088064 + .long 0 + .long 1072086016 + .long 0 + .long 1072084992 + .long 0 + .long 1072082944 + .long 0 + .long 1072081920 + .long 0 + .long 1072080896 + .long 0 + .long 1072078848 + .long 0 + .long 1072075776 + .long 0 + .long 1072073728 + .long 0 + .long 1072070656 + .long 0 + .long 1072067584 + .long 0 + .long 1072064512 + .long 0 + .long 1072061440 + .long 0 + .long 1072059392 + .long 0 + .long 1072056320 + .long 0 + .long 1072053248 + .long 0 + .long 1072051200 + .long 0 + .long 1072048128 + .long 0 + .long 1072045056 + .long 0 + .long 1072043008 + .long 0 + .long 1072039936 + .long 0 + .long 1072037888 + .long 0 + .long 1072034816 + .long 0 + .long 1072031744 + .long 0 + .long 1072029696 + .long 0 + .long 1072026624 + .long 0 + .long 1072024576 + .long 0 + .long 1072021504 + .long 0 + .long 1072019456 + .long 0 + .long 1072016384 + .long 0 + .long 1072014336 + .long 0 + .long 1072011264 + .long 0 + .long 1072009216 + .long 0 + .long 1072006144 + .long 0 + .long 1072004096 + .long 0 + .long 1072002048 + .long 0 + .long 1071998976 + .long 0 + .long 1071996928 + .long 0 + .long 1071993856 + .long 0 + .long 1071991808 + .long 0 + .long 1071989760 + .long 0 + .long 1071986688 + .long 0 + .long 1071984640 + .long 0 + .long 1071982592 + .long 0 + .long 1071979520 + .long 0 + .long 1071977472 + .long 0 + .long 1071975424 + .long 0 + .long 1071972352 + .long 0 + .long 1071970304 + .long 0 + .long 1071968256 + .long 0 + .long 1071966208 + .long 0 + .long 1071964160 + .long 0 + .long 1071961088 + .long 0 + .long 1071959040 + .long 0 + .long 1071956992 + .long 0 + .long 1071954944 + .long 0 + .long 1071952896 + .long 0 + .long 1071949824 + .long 0 + .long 1071947776 + .long 0 + .long 1071945728 + .long 0 + .long 1071943680 + .long 0 + .long 1071941632 + .long 0 + .long 1071939584 + .long 0 + .long 1071937536 + .long 0 + .long 1071935488 + .long 0 + .long 1071933440 + .long 0 + .long 1071930368 + .long 0 + .long 1071928320 + .long 0 + .long 1071926272 + .long 0 + .long 1071924224 + .long 0 + .long 1071922176 + .long 0 + .long 1071920128 + .long 0 + .long 1071918080 + .long 0 + .long 1071916032 + .long 0 + .long 1071913984 + .long 0 + .long 1071911936 + .long 0 + .long 1071909888 + .long 0 + .long 1071907840 + .long 0 + .long 1071905792 + .long 0 + .long 1071903744 + .long 0 + .long 1071901696 + .long 0 + .long 1071900672 + .long 0 + .long 1071898624 + .long 0 + .long 1071896576 + .long 0 + .long 1071894528 + .long 0 + .long 1071892480 + .long 0 + .long 1071890432 + .long 0 + .long 1071888384 + .long 0 + .long 1071886336 + .long 0 + .long 1071884288 + .long 0 + .long 1071883264 + .long 0 + .long 1071881216 + .long 0 + .long 1071879168 + .long 0 + .long 1071877120 + .long 0 + .long 1071875072 + .long 0 + .long 1071873024 + .long 0 + .long 1071872000 + .long 0 + .long 1071869952 + .long 0 + .long 1071867904 + .long 0 + .long 1071865856 + .long 0 + .long 1071864832 + .long 0 + .long 1071862784 + .long 0 + .long 1071860736 + .long 0 + .long 1071858688 + .long 0 + .long 1071856640 + .long 0 + .long 1071855616 + .long 0 + .long 1071853568 + .long 0 + .long 1071851520 + .long 0 + .long 1071850496 + .long 0 + .long 1071848448 + .long 0 + .long 1071846400 + .long 0 + .long 1071844352 + .long 0 + .long 1071843328 + .long 0 + .long 1071841280 + .long 0 + .long 1071839232 + .long 0 + .long 1071838208 + .long 0 + .long 1071836160 + .long 0 + .long 1071834112 + .long 0 + .long 1071833088 + .long 0 + .long 1071831040 + .long 0 + .long 1071830016 + .long 0 + .long 1071827968 + .long 0 + .long 1071825920 + .long 0 + .long 1071824896 + .long 0 + .long 1071822848 + .long 0 + .long 1071821824 + .long 0 + .long 1071819776 + .long 0 + .long 1071817728 + .long 0 + .long 1071816704 + .long 0 + .long 1071814656 + .long 0 + .long 1071813632 + .long 0 + .long 1071811584 + .long 0 + .long 1071810560 + .long 0 + .long 1071808512 + .long 0 + .long 1071806464 + .long 0 + .long 1071805440 + .long 0 + .long 1071803392 + .long 0 + .long 1071802368 + .long 0 + .long 1071800320 + .long 0 + .long 1071799296 + .long 0 + .long 1071797248 + .long 0 + .long 1071796224 + .long 0 + .long 1071794176 + .long 0 + .long 1071793152 + .long 0 + .long 1071791104 + .long 0 + .long 1071790080 + .long 0 + .long 1071788032 + .long 0 + .long 1071787008 + .long 0 + .long 1071784960 + .long 0 + .long 1071783936 + .long 0 + .long 1071782912 + .long 0 + .long 1071780864 + .long 0 + .long 1071779840 + .long 0 + .long 1071777792 + .long 0 + .long 1071776768 + .long 0 + .long 1071774720 + .long 0 + .long 1071773696 + .long 0 + .long 1071772672 + .long 0 + .long 1071770624 + .long 0 + .long 1071769600 + .long 0 + .long 1071767552 + .long 0 + .long 1071766528 + .long 0 + .long 1071765504 + .long 0 + .long 1071763456 + .long 0 + .long 1071762432 + .long 0 + .long 1071760384 + .long 0 + .long 1071759360 + .long 0 + .long 1071758336 + .long 0 + .long 1071756288 + .long 0 + .long 1071755264 + .long 0 + .long 1071754240 + .long 0 + .long 1071752192 + .long 0 + .long 1071751168 + .long 0 + .long 1071750144 + .long 0 + .long 1071748096 + .long 0 + .long 1071747072 + .long 0 + .long 1071746048 + .long 0 + .long 1071744000 + .long 0 + .long 1071742976 + .long 0 + .long 1071741952 + .long 0 + .long 1071739904 + .long 0 + .long 1071738880 + .long 0 + .long 1071737856 + .long 0 + .long 1071736832 + .long 0 + .long 1071734784 + .long 0 + .long 1071733760 + .long 0 + .long 1071732736 + .long 0 + .long 1071730688 + .long 0 + .long 1071729664 + .long 0 + .long 1071728640 + .long 0 + .long 1071727616 + .long 0 + .long 1071725568 + .long 0 + .long 1071724544 + .long 0 + .long 1071723520 + .long 0 + .long 1071722496 + .long 0 + .long 1071720448 + .long 0 + .long 1071719424 + .long 0 + .long 1071718400 + .long 0 + .long 1071717376 + .long 0 + .long 1071715328 + .long 0 + .long 1071714304 + .long 0 + .long 1071713280 + .long 0 + .long 1071712256 + .long 0 + .long 1071711232 + .long 0 + .long 1071709184 + .long 0 + .long 1071708160 + .long 0 + .long 1071707136 + .long 0 + .long 1071706112 + .long 0 + .long 1071705088 + .long 0 + .long 1071704064 + .long 0 + .long 1071702016 + .long 0 + .long 1071700992 + .long 0 + .long 1071699968 + .long 0 + .long 1071698944 + .long 0 + .long 1071697920 + .long 0 + .long 1071696896 + .long 0 + .long 1071694848 + .long 0 + .long 1071693824 + .long 0 + .long 1071692800 + .long 0 + .long 1071691776 + .long 0 + .long 1071690752 + .long 0 + .long 1071689728 + .long 0 + .long 1071688704 + .long 0 + .long 1071686656 + .long 0 + .long 1071685632 + .long 0 + .long 1071684608 + .long 0 + .long 1071683584 + .long 0 + .long 1071682560 + .long 0 + .long 1071681536 + .long 0 + .long 1071680512 + .long 0 + .long 1071679488 + .long 0 + .long 1071677440 + .long 0 + .long 1071676416 + .long 0 + .long 1071675392 + .long 0 + .long 1071674368 + .long 0 + .long 1071673344 + .long 0 + .long 1071672320 + .long 0 + .long 1071671296 + .long 0 + .long 1071670272 + .long 0 + .long 1071669248 + .long 0 + .long 1071668224 + .long 0 + .long 1071667200 + .long 0 + .long 1071666176 + .long 0 + .long 1071665152 + .long 0 + .long 1071663104 + .long 0 + .long 1071662080 + .long 0 + .long 1071661056 + .long 0 + .long 1071660032 + .long 0 + .long 1071659008 + .long 0 + .long 1071657984 + .long 0 + .long 1071656960 + .long 0 + .long 1071655936 + .long 0 + .long 1071654912 + .long 0 + .long 1071653888 + .long 0 + .long 1071652864 + .long 0 + .long 1071651840 + .long 0 + .long 1071650816 + .long 0 + .long 1071649792 + .long 0 + .long 1071648768 + .long 0 + .long 1071647744 + .long 0 + .long 1071646720 + .long 0 + .long 1071645696 + .long 0 + .long 1071644672 + .long 0 + .long 1101004800 + .long 1073741824 + .long 1095761920 + .long 256 + .long 1118830592 + .long 0 + .long 1048576 + .long 0 + .long 1017118720 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 0 + .long 1072693248 + .long 0 + .long 1071644672 + .long 1476395008 + .long 1069897045 + .long 1768958041 + .long 3189069141 + .long 805306368 + .long 1068708659 + .long 3580333578 + .long 1040816593 + .long 3067382784 + .long 1067899757 + .long 3397590151 + .long 1067392113 + .long 2939529726 + .long 1066854585 + .long 1423429166 + .long 1066517752 + .long 1775218934 + .long 1066178574 + .long 1185392460 + .long 1065859647 + .long 289998670 + .long 1065577550 + .long 3179807072 + .long 1065648121 + .long 3781007284 + .long 1061576176 + .long 2482106687 + .long 1067019199 + .long 763519713 + .long 3214591591 + .long 3695107454 + .long 1067530646 + .long 0 + .long 1073741824 + .long 1124791109 + .long 1006764147 + .long 1476395008 + .long 1069897045 + .long 1953913876 + .long 3189069141 + .long 805306368 + .long 1067660083 + .long 165110192 + .long 1039768033 + .long 3067304082 + .long 1065802605 + .long 3404727379 + .long 1064246385 + .long 2737480376 + .long 1062660281 + .long 933797922 + .long 1061274873 + .long 1475716730 + .long 1059887095 + .long 1511619763 + .long 1058519827 + .long 556024211 + .long 1057187555 + .long 3482101045 + .long 1056217350 + .long 1174622859 + .long 1050762633 + .long 899668651 + .long 1055506366 + .long 1081094694 + .long 3202035365 + .long 2559814773 + .long 1053906576 + .long 0 + .long 3219128320 + .long 0 + .long 1071120384 + .long 0 + .long 3218341888 + .long 0 + .long 1070694400 + .long 0 + .long 3218046976 + .long 0 + .long 1070391296 + .long 0 + .long 3217739776 + .type _vmldASinHATab,@object + .size _vmldASinHATab,4504 diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S new file mode 100644 index 0000000000..354a55dfaa --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core-avx2.S @@ -0,0 +1,20 @@ +/* AVX2 version of vectorized asin, vector length is 8. + Copyright (C) 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 + . */ + +#define _ZGVeN8v_asin _ZGVeN8v_asin_avx2_wrapper +#include "../svml_d_asin8_core.S" diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c new file mode 100644 index 0000000000..b03e4a2b9c --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core.c @@ -0,0 +1,27 @@ +/* Multiple versions of vectorized asin, vector length is 8. + Copyright (C) 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 + . */ + +#define SYMBOL_NAME _ZGVeN8v_asin +#include "ifunc-mathvec-avx512-skx.h" + +libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ()); + +#ifdef SHARED +__hidden_ver1 (_ZGVeN8v_asin, __GI__ZGVeN8v_asin, __redirect__ZGVeN8v_asin) + __attribute__ ((visibility ("hidden"))); +#endif diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S new file mode 100644 index 0000000000..9b0968da36 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_asin8_core_avx512.S @@ -0,0 +1,2523 @@ +/* Function asin vectorized with AVX-512. + Copyright (C) 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 + https://www.gnu.org/licenses/. */ + +/* + * ALGORITHM DESCRIPTION: + * + * SelMask = (|x| >= 0.5) ? 1 : 0; + * R = SelMask ? sqrt(0.5 - 0.5*|x|) : |x| + * asin(x) = (SelMask ? (Pi/2 - 2*Poly(R)) : Poly(R))*(-1)^sign(x) + * + */ + +#include + + .text +ENTRY(_ZGVeN8v_asin_skx) + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-64, %rsp + subq $192, %rsp + vmovups 64+__svml_dasin_data_internal(%rip), %zmm8 + +/* S ~ -2*sqrt(Y) */ + vmovups 128+__svml_dasin_data_internal(%rip), %zmm10 + vmovups 384+__svml_dasin_data_internal(%rip), %zmm14 + vmovups 448+__svml_dasin_data_internal(%rip), %zmm15 + vmovups 512+__svml_dasin_data_internal(%rip), %zmm2 + vmovups 576+__svml_dasin_data_internal(%rip), %zmm1 + vmovups 256+__svml_dasin_data_internal(%rip), %zmm9 + vmovaps %zmm0, %zmm6 + +/* x = |arg| */ + vandpd __svml_dasin_data_internal(%rip), %zmm6, %zmm4 + +/* Y = 0.5 - 0.5*x */ + vmovaps %zmm8, %zmm11 + vfnmadd231pd {rn-sae}, %zmm4, %zmm8, %zmm11 + +/* x^2 */ + vmulpd {rn-sae}, %zmm4, %zmm4, %zmm7 + vrsqrt14pd %zmm11, %zmm12 + vcmppd $17, {sae}, %zmm10, %zmm11, %k1 + vcmppd $21, {sae}, %zmm8, %zmm4, %k2 + vcmppd $17, {sae}, %zmm4, %zmm9, %k0 + vmovups 960+__svml_dasin_data_internal(%rip), %zmm10 + +/* polynomial */ + vmovups 704+__svml_dasin_data_internal(%rip), %zmm8 + vmovups 832+__svml_dasin_data_internal(%rip), %zmm9 + vminpd {sae}, %zmm11, %zmm7, %zmm3 + vxorpd %zmm12, %zmm12, %zmm12{%k1} + vaddpd {rn-sae}, %zmm11, %zmm11, %zmm0 + vxorpd %zmm6, %zmm4, %zmm5 + vmulpd {rn-sae}, %zmm12, %zmm12, %zmm13 + vmulpd {rn-sae}, %zmm12, %zmm0, %zmm7 + vmovups 1088+__svml_dasin_data_internal(%rip), %zmm11 + vmovups 896+__svml_dasin_data_internal(%rip), %zmm12 + vfmsub213pd {rn-sae}, %zmm14, %zmm13, %zmm0 + vmovups 640+__svml_dasin_data_internal(%rip), %zmm13 + vfmadd231pd {rn-sae}, %zmm3, %zmm9, %zmm12 + vmovups 1344+__svml_dasin_data_internal(%rip), %zmm9 + vfmadd231pd {rn-sae}, %zmm0, %zmm15, %zmm2 + vmovups 1216+__svml_dasin_data_internal(%rip), %zmm15 + vmulpd {rn-sae}, %zmm0, %zmm7, %zmm14 + vfmadd213pd {rn-sae}, %zmm1, %zmm0, %zmm2 + vmovups 768+__svml_dasin_data_internal(%rip), %zmm1 + kmovw %k0, %edx + vfmadd213pd {rn-sae}, %zmm13, %zmm0, %zmm2 + vfmadd231pd {rn-sae}, %zmm3, %zmm8, %zmm1 + vmovups 1280+__svml_dasin_data_internal(%rip), %zmm8 + vmulpd {rn-sae}, %zmm3, %zmm3, %zmm0 + vfmsub213pd {rn-sae}, %zmm7, %zmm14, %zmm2 + vmovups 1024+__svml_dasin_data_internal(%rip), %zmm7 + vfmadd231pd {rn-sae}, %zmm3, %zmm15, %zmm8 + vfmadd213pd {rn-sae}, %zmm12, %zmm0, %zmm1 + vblendmpd %zmm2, %zmm4, %zmm2{%k2} + vfmadd231pd {rn-sae}, %zmm3, %zmm10, %zmm7 + vmovups 1152+__svml_dasin_data_internal(%rip), %zmm10 + vmovups 1472+__svml_dasin_data_internal(%rip), %zmm4 + vfmadd231pd {rn-sae}, %zmm3, %zmm11, %zmm10 + vmovups 1408+__svml_dasin_data_internal(%rip), %zmm11 + vfmadd213pd {rn-sae}, %zmm10, %zmm0, %zmm7 + vfmadd231pd {rn-sae}, %zmm3, %zmm9, %zmm11 + vmulpd {rn-sae}, %zmm0, %zmm0, %zmm10 + vfmadd213pd {rn-sae}, %zmm7, %zmm10, %zmm1 + vfmadd213pd {rn-sae}, %zmm8, %zmm0, %zmm1 + vfmadd213pd {rn-sae}, %zmm11, %zmm0, %zmm1 + vmulpd {rn-sae}, %zmm3, %zmm1, %zmm3 + vfmadd213pd {rn-sae}, %zmm2, %zmm2, %zmm3 + vaddpd {rn-sae}, %zmm4, %zmm3, %zmm3{%k2} + vxorpd %zmm5, %zmm3, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + +.LBL_1_3: + vmovups %zmm6, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + xorl %eax, %eax + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + kmovw 24(%rsp), %k4 + cfi_restore(122) + kmovw 16(%rsp), %k5 + cfi_restore(123) + kmovw 8(%rsp), %k6 + cfi_restore(124) + kmovw (%rsp), %k7 + cfi_restore(125) + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + cfi_restore(4) + movq 32(%rsp), %rdi + cfi_restore(5) + movq 56(%rsp), %r12 + cfi_restore(12) + movq 48(%rsp), %r13 + cfi_restore(13) + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + lea 64(%rsp,%r12,8), %rdi + lea 128(%rsp,%r12,8), %rsi + call __svml_dasin_cout_rare_internal + jmp .LBL_1_8 + +END(_ZGVeN8v_asin_skx) + + .align 16,0x90 + +__svml_dasin_cout_rare_internal: + + cfi_startproc + + xorl %eax, %eax + movzwl 6(%rdi), %edx + andl $32752, %edx + cmpl $32752, %edx + je .LBL_2_12 + movq (%rdi), %rdx + movq %rdx, -32(%rsp) + shrq $56, %rdx + movsd 4160+_vmldASinHATab(%rip), %xmm0 + andl $127, %edx + movb %dl, -25(%rsp) + movsd -32(%rsp), %xmm12 + comisd %xmm12, %xmm0 + jb .LBL_2_10 + movsd 4168+_vmldASinHATab(%rip), %xmm1 + comisd %xmm12, %xmm1 + jbe .LBL_2_9 + comisd 4136+_vmldASinHATab(%rip), %xmm12 + jbe .LBL_2_6 + movsd 4104+_vmldASinHATab(%rip), %xmm13 + movaps %xmm12, %xmm5 + mulsd %xmm12, %xmm13 + movaps %xmm12, %xmm7 + movsd %xmm13, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd -32(%rsp), %xmm14 + movsd %xmm14, -56(%rsp) + movsd -48(%rsp), %xmm8 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd 4296+_vmldASinHATab(%rip), %xmm8 + subsd %xmm6, %xmm5 + movsd %xmm5, -56(%rsp) + movaps %xmm12, %xmm5 + movsd -48(%rsp), %xmm9 + movaps %xmm9, %xmm13 + addsd %xmm9, %xmm7 + mulsd %xmm9, %xmm13 + movsd -56(%rsp), %xmm11 + movaps %xmm13, %xmm10 + mulsd %xmm11, %xmm7 + mulsd %xmm13, %xmm1 + addsd %xmm7, %xmm10 + mulsd %xmm10, %xmm8 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm2 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd %xmm13, %xmm2 + addsd 4288+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm0 + addsd 4280+_vmldASinHATab(%rip), %xmm8 + subsd %xmm0, %xmm3 + mulsd %xmm10, %xmm8 + movsd %xmm3, -48(%rsp) + movsd -48(%rsp), %xmm4 + addsd 4272+_vmldASinHATab(%rip), %xmm8 + subsd %xmm4, %xmm13 + mulsd %xmm10, %xmm8 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm6 + mulsd %xmm6, %xmm9 + addsd 4264+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm6, %xmm11 + mulsd %xmm10, %xmm8 + mulsd %xmm9, %xmm1 + addsd 4256+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movaps %xmm9, %xmm3 + movsd -56(%rsp), %xmm14 + movaps %xmm6, %xmm4 + movsd %xmm1, -48(%rsp) + addsd %xmm14, %xmm7 + addsd 4248+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm7, %xmm5 + mulsd %xmm10, %xmm8 + addsd %xmm5, %xmm11 + addsd 4240+_vmldASinHATab(%rip), %xmm8 + movsd -48(%rsp), %xmm2 + mulsd %xmm10, %xmm8 + subsd %xmm9, %xmm2 + addsd %xmm11, %xmm9 + addsd 4232+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm9, %xmm7 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm0 + addsd 4224+_vmldASinHATab(%rip), %xmm8 + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm5 + mulsd %xmm10, %xmm8 + subsd %xmm5, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm5 + movaps %xmm5, %xmm13 + addsd 4216+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm3, %xmm4 + addsd %xmm11, %xmm13 + mulsd %xmm10, %xmm8 + mulsd %xmm13, %xmm6 + addsd 4208+_vmldASinHATab(%rip), %xmm8 + addsd %xmm7, %xmm6 + mulsd %xmm10, %xmm8 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm7 + addsd 4200+_vmldASinHATab(%rip), %xmm8 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm1 + movsd 4184+_vmldASinHATab(%rip), %xmm10 + subsd %xmm4, %xmm1 + mulsd %xmm9, %xmm10 + addsd %xmm6, %xmm4 + movsd %xmm1, -56(%rsp) + movaps %xmm12, %xmm9 + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd 4176+_vmldASinHATab(%rip), %xmm1 + subsd %xmm2, %xmm0 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm11 + mulsd %xmm4, %xmm8 + addsd %xmm3, %xmm9 + mulsd %xmm1, %xmm5 + addsd %xmm11, %xmm10 + movsd %xmm0, -48(%rsp) + addsd %xmm10, %xmm8 + movsd -48(%rsp), %xmm7 + addsd %xmm5, %xmm8 + subsd %xmm7, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd %xmm9, -48(%rsp) + addsd %xmm2, %xmm6 + movsd -48(%rsp), %xmm11 + movsd 4192+_vmldASinHATab(%rip), %xmm4 + subsd %xmm11, %xmm12 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm6 + addsd %xmm12, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movaps %xmm3, %xmm12 + movsd -56(%rsp), %xmm7 + addsd %xmm0, %xmm12 + addsd %xmm7, %xmm8 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm12 + subsd %xmm12, %xmm3 + addsd %xmm3, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm9 + movsd -56(%rsp), %xmm0 + movb 7(%rdi), %dil + addsd %xmm0, %xmm8 + andb $-128, %dil + addsd %xmm8, %xmm9 + addsd %xmm9, %xmm6 + movsd %xmm6, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_6: + comisd 4128+_vmldASinHATab(%rip), %xmm12 + jb .LBL_2_8 + addsd %xmm0, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + mulsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + movb 7(%rdi), %dil + andb $127, %dl + andb $-128, %dil + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_8: + mulsd %xmm12, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + movb 7(%rdi), %dil + andb $-128, %dil + addsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_9: + movaps %xmm0, %xmm9 + movzwl 4166+_vmldASinHATab(%rip), %r9d + pxor %xmm15, %xmm15 + andl $-32753, %r9d + subsd %xmm12, %xmm9 + subsd %xmm0, %xmm15 + mulsd %xmm9, %xmm1 + movsd %xmm1, -32(%rsp) + movzwl -26(%rsp), %ecx + andl $32752, %ecx + shrl $4, %ecx + addl $-1023, %ecx + movl %ecx, %r8d + movl %ecx, %edx + negl %r8d + addl $1023, %r8d + andl $2047, %r8d + shll $4, %r8d + movsd %xmm0, -24(%rsp) + orl %r8d, %r9d + movw %r9w, -18(%rsp) + andl $1, %edx + movsd -24(%rsp), %xmm10 + movl %edx, %r10d + mulsd %xmm10, %xmm1 + lea _vmldASinHATab(%rip), %r8 + movaps %xmm1, %xmm6 + movsd 4112+_vmldASinHATab(%rip), %xmm7 + addsd %xmm1, %xmm6 + jne .LBL_54 + movaps %xmm1, %xmm6 + +.LBL_54: + mulsd %xmm6, %xmm7 + movaps %xmm6, %xmm8 + movaps %xmm7, %xmm11 + subl %edx, %ecx + movsd 4120+_vmldASinHATab(%rip), %xmm13 + subsd %xmm6, %xmm11 + addsd %xmm1, %xmm13 + movsd %xmm11, -56(%rsp) + movsd -56(%rsp), %xmm12 + movsd %xmm13, -16(%rsp) + subsd %xmm12, %xmm7 + movl -16(%rsp), %r11d + movaps %xmm7, %xmm4 + shll $8, %r10d + andl $511, %r11d + addl %r10d, %r11d + subsd %xmm7, %xmm8 + movsd (%r8,%r11,8), %xmm3 + addsd %xmm8, %xmm4 + mulsd %xmm3, %xmm7 + movaps %xmm3, %xmm14 + mulsd %xmm3, %xmm14 + mulsd %xmm14, %xmm4 + movsd 4496+_vmldASinHATab(%rip), %xmm5 + addsd %xmm15, %xmm4 + mulsd %xmm4, %xmm5 + shrl $1, %ecx + addsd 4488+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addl $1023, %ecx + andl $2047, %ecx + addsd 4480+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movzwl 4166+_vmldASinHATab(%rip), %r9d + shll $4, %ecx + andl $-32753, %r9d + movsd %xmm0, -8(%rsp) + orl %ecx, %r9d + movw %r9w, -2(%rsp) + movsd -8(%rsp), %xmm12 + mulsd %xmm12, %xmm7 + addsd 4472+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + mulsd %xmm7, %xmm1 + addsd 4464+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + movsd 4336+_vmldASinHATab(%rip), %xmm13 + subsd %xmm7, %xmm0 + addsd 4456+_vmldASinHATab(%rip), %xmm5 + addsd 4344+_vmldASinHATab(%rip), %xmm13 + mulsd %xmm4, %xmm5 + mulsd %xmm9, %xmm13 + addsd 4448+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + mulsd %xmm6, %xmm5 + movsd %xmm0, -56(%rsp) + addsd %xmm5, %xmm8 + movsd 4440+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm3, %xmm8 + addsd 4432+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm12, %xmm8 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm2 + movsd 4320+_vmldASinHATab(%rip), %xmm14 + subsd %xmm2, %xmm10 + addsd 4424+_vmldASinHATab(%rip), %xmm5 + addsd 4328+_vmldASinHATab(%rip), %xmm14 + mulsd %xmm9, %xmm5 + addsd %xmm13, %xmm14 + addsd 4416+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm14 + mulsd %xmm9, %xmm5 + movsd %xmm10, -48(%rsp) + movaps %xmm9, %xmm2 + movsd -48(%rsp), %xmm11 + movsd 4104+_vmldASinHATab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm9, %xmm3 + addsd 4408+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd 4304+_vmldASinHATab(%rip), %xmm4 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm7 + movsd %xmm3, -48(%rsp) + addsd %xmm7, %xmm8 + addsd 4400+_vmldASinHATab(%rip), %xmm5 + addsd 4312+_vmldASinHATab(%rip), %xmm4 + mulsd %xmm9, %xmm5 + addsd %xmm14, %xmm4 + addsd 4392+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm1 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm9, %xmm1 + addsd 4384+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd %xmm1, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + addsd 4376+_vmldASinHATab(%rip), %xmm5 + subsd %xmm15, %xmm0 + mulsd %xmm9, %xmm5 + movsd %xmm0, -48(%rsp) + movsd 4320+_vmldASinHATab(%rip), %xmm0 + addsd 4368+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4360+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4352+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + addsd %xmm5, %xmm4 + mulsd %xmm4, %xmm8 + movsd -48(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm4 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm13 + mulsd %xmm4, %xmm0 + addsd %xmm9, %xmm4 + mulsd %xmm13, %xmm7 + movsd -56(%rsp), %xmm3 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + mulsd %xmm3, %xmm4 + subsd %xmm13, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm1 + movsd 4304+_vmldASinHATab(%rip), %xmm10 + subsd %xmm1, %xmm11 + movsd %xmm11, -48(%rsp) + movaps %xmm0, %xmm1 + movsd -48(%rsp), %xmm12 + movsd 4304+_vmldASinHATab(%rip), %xmm11 + subsd %xmm12, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm7 + mulsd 4336+_vmldASinHATab(%rip), %xmm7 + movsd -56(%rsp), %xmm2 + addsd %xmm7, %xmm1 + addsd %xmm2, %xmm4 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd %xmm7, -16(%rsp) + subsd %xmm14, %xmm0 + mulsd 4336+_vmldASinHATab(%rip), %xmm4 + addsd %xmm0, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm12 + movsd -56(%rsp), %xmm1 + addsd %xmm12, %xmm10 + movsd %xmm10, -48(%rsp) + movsd -48(%rsp), %xmm15 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm15, %xmm11 + movsd 4320+_vmldASinHATab(%rip), %xmm2 + addsd %xmm11, %xmm12 + mulsd %xmm3, %xmm2 + movsd %xmm12, -56(%rsp) + movsd -48(%rsp), %xmm15 + mulsd %xmm15, %xmm7 + movsd -56(%rsp), %xmm0 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + movsd 4344+_vmldASinHATab(%rip), %xmm3 + subsd %xmm15, %xmm10 + mulsd %xmm9, %xmm3 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm13 + subsd %xmm13, %xmm11 + addsd 4328+_vmldASinHATab(%rip), %xmm3 + movsd %xmm11, -48(%rsp) + movsd -48(%rsp), %xmm14 + mulsd %xmm9, %xmm3 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm7 + addsd %xmm7, %xmm4 + addsd 4312+_vmldASinHATab(%rip), %xmm3 + addsd %xmm2, %xmm4 + addsd %xmm5, %xmm3 + addsd %xmm1, %xmm4 + addsd %xmm0, %xmm4 + movsd 4144+_vmldASinHATab(%rip), %xmm0 + addsd %xmm3, %xmm4 + mulsd %xmm6, %xmm4 + mulsd %xmm10, %xmm6 + addsd %xmm8, %xmm4 + movaps %xmm0, %xmm8 + subsd %xmm6, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm9 + subsd %xmm9, %xmm0 + subsd %xmm6, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + movb 7(%rdi), %dil + andb $-128, %dil + addsd 4152+_vmldASinHATab(%rip), %xmm1 + subsd %xmm4, %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movq -40(%rsp), %rcx + movq %rcx, (%rsi) + ret + +.LBL_2_10: + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divsd %xmm0, %xmm1 + movsd %xmm1, (%rsi) + +.LBL_2_11: + ret + +.LBL_2_12: + movsd (%rdi), %xmm0 + divsd %xmm0, %xmm0 + movsd %xmm0, (%rsi) + testl $1048575, 4(%rdi) + jne .LBL_2_11 + cmpl $0, (%rdi) + sete %al + ret + + cfi_endproc + + .type __svml_dasin_cout_rare_internal,@function + .size __svml_dasin_cout_rare_internal,.-__svml_dasin_cout_rare_internal + + .section .rodata, "a" + .align 64 + +__svml_dasin_data_internal: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 805306368 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 4294967040 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 4227858432 + .long 4294967295 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 0 + .long 1073741824 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 2570790083 + .long 3213983744 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 1869665325 + .long 1067712512 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294966935 + .long 3216506879 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 4294967197 + .long 1070596095 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 3339630857 + .long 1067480352 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 4158370029 + .long 3213949719 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 3216784302 + .long 1066680132 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 2513723093 + .long 1064982579 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 721210070 + .long 1065941212 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 3414736215 + .long 1066167739 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 4114132270 + .long 1066518236 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3957258973 + .long 1066854556 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3778730174 + .long 1067392114 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 3014936056 + .long 1067899757 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 859300062 + .long 1068708659 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1431655068 + .long 1069897045 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 856972295 + .long 1016178214 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 0 + .long 4294705152 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 4131758366 + .long 1067674714 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 3936260738 + .long 1066197319 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 354394453 + .long 1067472564 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 709676628 + .long 1067895021 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 3958922090 + .long 1068708761 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 2160605765 + .long 1069897044 + .long 0 + .long 2146435072 + .long 0 + .long 4293918720 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .type __svml_dasin_data_internal,@object + .size __svml_dasin_data_internal,2368 + .align 32 + +_vmldASinHATab: + .long 0 + .long 1072693248 + .long 0 + .long 1072689152 + .long 0 + .long 1072685056 + .long 0 + .long 1072680960 + .long 0 + .long 1072676864 + .long 0 + .long 1072672768 + .long 0 + .long 1072668672 + .long 0 + .long 1072665600 + .long 0 + .long 1072661504 + .long 0 + .long 1072657408 + .long 0 + .long 1072653312 + .long 0 + .long 1072649216 + .long 0 + .long 1072646144 + .long 0 + .long 1072642048 + .long 0 + .long 1072637952 + .long 0 + .long 1072634880 + .long 0 + .long 1072630784 + .long 0 + .long 1072626688 + .long 0 + .long 1072623616 + .long 0 + .long 1072619520 + .long 0 + .long 1072615424 + .long 0 + .long 1072612352 + .long 0 + .long 1072608256 + .long 0 + .long 1072605184 + .long 0 + .long 1072601088 + .long 0 + .long 1072598016 + .long 0 + .long 1072593920 + .long 0 + .long 1072590848 + .long 0 + .long 1072586752 + .long 0 + .long 1072583680 + .long 0 + .long 1072580608 + .long 0 + .long 1072576512 + .long 0 + .long 1072573440 + .long 0 + .long 1072570368 + .long 0 + .long 1072566272 + .long 0 + .long 1072563200 + .long 0 + .long 1072560128 + .long 0 + .long 1072556032 + .long 0 + .long 1072552960 + .long 0 + .long 1072549888 + .long 0 + .long 1072546816 + .long 0 + .long 1072542720 + .long 0 + .long 1072539648 + .long 0 + .long 1072536576 + .long 0 + .long 1072533504 + .long 0 + .long 1072530432 + .long 0 + .long 1072527360 + .long 0 + .long 1072523264 + .long 0 + .long 1072520192 + .long 0 + .long 1072517120 + .long 0 + .long 1072514048 + .long 0 + .long 1072510976 + .long 0 + .long 1072507904 + .long 0 + .long 1072504832 + .long 0 + .long 1072501760 + .long 0 + .long 1072498688 + .long 0 + .long 1072495616 + .long 0 + .long 1072492544 + .long 0 + .long 1072489472 + .long 0 + .long 1072486400 + .long 0 + .long 1072483328 + .long 0 + .long 1072480256 + .long 0 + .long 1072478208 + .long 0 + .long 1072475136 + .long 0 + .long 1072472064 + .long 0 + .long 1072468992 + .long 0 + .long 1072465920 + .long 0 + .long 1072462848 + .long 0 + .long 1072459776 + .long 0 + .long 1072457728 + .long 0 + .long 1072454656 + .long 0 + .long 1072451584 + .long 0 + .long 1072448512 + .long 0 + .long 1072446464 + .long 0 + .long 1072443392 + .long 0 + .long 1072440320 + .long 0 + .long 1072437248 + .long 0 + .long 1072435200 + .long 0 + .long 1072432128 + .long 0 + .long 1072429056 + .long 0 + .long 1072427008 + .long 0 + .long 1072423936 + .long 0 + .long 1072420864 + .long 0 + .long 1072418816 + .long 0 + .long 1072415744 + .long 0 + .long 1072412672 + .long 0 + .long 1072410624 + .long 0 + .long 1072407552 + .long 0 + .long 1072405504 + .long 0 + .long 1072402432 + .long 0 + .long 1072400384 + .long 0 + .long 1072397312 + .long 0 + .long 1072395264 + .long 0 + .long 1072392192 + .long 0 + .long 1072390144 + .long 0 + .long 1072387072 + .long 0 + .long 1072385024 + .long 0 + .long 1072381952 + .long 0 + .long 1072379904 + .long 0 + .long 1072376832 + .long 0 + .long 1072374784 + .long 0 + .long 1072371712 + .long 0 + .long 1072369664 + .long 0 + .long 1072366592 + .long 0 + .long 1072364544 + .long 0 + .long 1072362496 + .long 0 + .long 1072359424 + .long 0 + .long 1072357376 + .long 0 + .long 1072355328 + .long 0 + .long 1072352256 + .long 0 + .long 1072350208 + .long 0 + .long 1072347136 + .long 0 + .long 1072345088 + .long 0 + .long 1072343040 + .long 0 + .long 1072340992 + .long 0 + .long 1072337920 + .long 0 + .long 1072335872 + .long 0 + .long 1072333824 + .long 0 + .long 1072330752 + .long 0 + .long 1072328704 + .long 0 + .long 1072326656 + .long 0 + .long 1072324608 + .long 0 + .long 1072321536 + .long 0 + .long 1072319488 + .long 0 + .long 1072317440 + .long 0 + .long 1072315392 + .long 0 + .long 1072313344 + .long 0 + .long 1072310272 + .long 0 + .long 1072308224 + .long 0 + .long 1072306176 + .long 0 + .long 1072304128 + .long 0 + .long 1072302080 + .long 0 + .long 1072300032 + .long 0 + .long 1072296960 + .long 0 + .long 1072294912 + .long 0 + .long 1072292864 + .long 0 + .long 1072290816 + .long 0 + .long 1072288768 + .long 0 + .long 1072286720 + .long 0 + .long 1072284672 + .long 0 + .long 1072282624 + .long 0 + .long 1072280576 + .long 0 + .long 1072278528 + .long 0 + .long 1072275456 + .long 0 + .long 1072273408 + .long 0 + .long 1072271360 + .long 0 + .long 1072269312 + .long 0 + .long 1072267264 + .long 0 + .long 1072265216 + .long 0 + .long 1072263168 + .long 0 + .long 1072261120 + .long 0 + .long 1072259072 + .long 0 + .long 1072257024 + .long 0 + .long 1072254976 + .long 0 + .long 1072252928 + .long 0 + .long 1072250880 + .long 0 + .long 1072248832 + .long 0 + .long 1072246784 + .long 0 + .long 1072244736 + .long 0 + .long 1072243712 + .long 0 + .long 1072241664 + .long 0 + .long 1072239616 + .long 0 + .long 1072237568 + .long 0 + .long 1072235520 + .long 0 + .long 1072233472 + .long 0 + .long 1072231424 + .long 0 + .long 1072229376 + .long 0 + .long 1072227328 + .long 0 + .long 1072225280 + .long 0 + .long 1072223232 + .long 0 + .long 1072222208 + .long 0 + .long 1072220160 + .long 0 + .long 1072218112 + .long 0 + .long 1072216064 + .long 0 + .long 1072214016 + .long 0 + .long 1072211968 + .long 0 + .long 1072210944 + .long 0 + .long 1072208896 + .long 0 + .long 1072206848 + .long 0 + .long 1072204800 + .long 0 + .long 1072202752 + .long 0 + .long 1072201728 + .long 0 + .long 1072199680 + .long 0 + .long 1072197632 + .long 0 + .long 1072195584 + .long 0 + .long 1072193536 + .long 0 + .long 1072192512 + .long 0 + .long 1072190464 + .long 0 + .long 1072188416 + .long 0 + .long 1072186368 + .long 0 + .long 1072185344 + .long 0 + .long 1072183296 + .long 0 + .long 1072181248 + .long 0 + .long 1072179200 + .long 0 + .long 1072178176 + .long 0 + .long 1072176128 + .long 0 + .long 1072174080 + .long 0 + .long 1072173056 + .long 0 + .long 1072171008 + .long 0 + .long 1072168960 + .long 0 + .long 1072167936 + .long 0 + .long 1072165888 + .long 0 + .long 1072163840 + .long 0 + .long 1072161792 + .long 0 + .long 1072160768 + .long 0 + .long 1072158720 + .long 0 + .long 1072157696 + .long 0 + .long 1072155648 + .long 0 + .long 1072153600 + .long 0 + .long 1072152576 + .long 0 + .long 1072150528 + .long 0 + .long 1072148480 + .long 0 + .long 1072147456 + .long 0 + .long 1072145408 + .long 0 + .long 1072143360 + .long 0 + .long 1072142336 + .long 0 + .long 1072140288 + .long 0 + .long 1072139264 + .long 0 + .long 1072137216 + .long 0 + .long 1072135168 + .long 0 + .long 1072134144 + .long 0 + .long 1072132096 + .long 0 + .long 1072131072 + .long 0 + .long 1072129024 + .long 0 + .long 1072128000 + .long 0 + .long 1072125952 + .long 0 + .long 1072124928 + .long 0 + .long 1072122880 + .long 0 + .long 1072120832 + .long 0 + .long 1072119808 + .long 0 + .long 1072117760 + .long 0 + .long 1072116736 + .long 0 + .long 1072114688 + .long 0 + .long 1072113664 + .long 0 + .long 1072111616 + .long 0 + .long 1072110592 + .long 0 + .long 1072108544 + .long 0 + .long 1072107520 + .long 0 + .long 1072105472 + .long 0 + .long 1072104448 + .long 0 + .long 1072102400 + .long 0 + .long 1072101376 + .long 0 + .long 1072099328 + .long 0 + .long 1072098304 + .long 0 + .long 1072096256 + .long 0 + .long 1072095232 + .long 0 + .long 1072094208 + .long 0 + .long 1072092160 + .long 0 + .long 1072091136 + .long 0 + .long 1072089088 + .long 0 + .long 1072088064 + .long 0 + .long 1072086016 + .long 0 + .long 1072084992 + .long 0 + .long 1072082944 + .long 0 + .long 1072081920 + .long 0 + .long 1072080896 + .long 0 + .long 1072078848 + .long 0 + .long 1072075776 + .long 0 + .long 1072073728 + .long 0 + .long 1072070656 + .long 0 + .long 1072067584 + .long 0 + .long 1072064512 + .long 0 + .long 1072061440 + .long 0 + .long 1072059392 + .long 0 + .long 1072056320 + .long 0 + .long 1072053248 + .long 0 + .long 1072051200 + .long 0 + .long 1072048128 + .long 0 + .long 1072045056 + .long 0 + .long 1072043008 + .long 0 + .long 1072039936 + .long 0 + .long 1072037888 + .long 0 + .long 1072034816 + .long 0 + .long 1072031744 + .long 0 + .long 1072029696 + .long 0 + .long 1072026624 + .long 0 + .long 1072024576 + .long 0 + .long 1072021504 + .long 0 + .long 1072019456 + .long 0 + .long 1072016384 + .long 0 + .long 1072014336 + .long 0 + .long 1072011264 + .long 0 + .long 1072009216 + .long 0 + .long 1072006144 + .long 0 + .long 1072004096 + .long 0 + .long 1072002048 + .long 0 + .long 1071998976 + .long 0 + .long 1071996928 + .long 0 + .long 1071993856 + .long 0 + .long 1071991808 + .long 0 + .long 1071989760 + .long 0 + .long 1071986688 + .long 0 + .long 1071984640 + .long 0 + .long 1071982592 + .long 0 + .long 1071979520 + .long 0 + .long 1071977472 + .long 0 + .long 1071975424 + .long 0 + .long 1071972352 + .long 0 + .long 1071970304 + .long 0 + .long 1071968256 + .long 0 + .long 1071966208 + .long 0 + .long 1071964160 + .long 0 + .long 1071961088 + .long 0 + .long 1071959040 + .long 0 + .long 1071956992 + .long 0 + .long 1071954944 + .long 0 + .long 1071952896 + .long 0 + .long 1071949824 + .long 0 + .long 1071947776 + .long 0 + .long 1071945728 + .long 0 + .long 1071943680 + .long 0 + .long 1071941632 + .long 0 + .long 1071939584 + .long 0 + .long 1071937536 + .long 0 + .long 1071935488 + .long 0 + .long 1071933440 + .long 0 + .long 1071930368 + .long 0 + .long 1071928320 + .long 0 + .long 1071926272 + .long 0 + .long 1071924224 + .long 0 + .long 1071922176 + .long 0 + .long 1071920128 + .long 0 + .long 1071918080 + .long 0 + .long 1071916032 + .long 0 + .long 1071913984 + .long 0 + .long 1071911936 + .long 0 + .long 1071909888 + .long 0 + .long 1071907840 + .long 0 + .long 1071905792 + .long 0 + .long 1071903744 + .long 0 + .long 1071901696 + .long 0 + .long 1071900672 + .long 0 + .long 1071898624 + .long 0 + .long 1071896576 + .long 0 + .long 1071894528 + .long 0 + .long 1071892480 + .long 0 + .long 1071890432 + .long 0 + .long 1071888384 + .long 0 + .long 1071886336 + .long 0 + .long 1071884288 + .long 0 + .long 1071883264 + .long 0 + .long 1071881216 + .long 0 + .long 1071879168 + .long 0 + .long 1071877120 + .long 0 + .long 1071875072 + .long 0 + .long 1071873024 + .long 0 + .long 1071872000 + .long 0 + .long 1071869952 + .long 0 + .long 1071867904 + .long 0 + .long 1071865856 + .long 0 + .long 1071864832 + .long 0 + .long 1071862784 + .long 0 + .long 1071860736 + .long 0 + .long 1071858688 + .long 0 + .long 1071856640 + .long 0 + .long 1071855616 + .long 0 + .long 1071853568 + .long 0 + .long 1071851520 + .long 0 + .long 1071850496 + .long 0 + .long 1071848448 + .long 0 + .long 1071846400 + .long 0 + .long 1071844352 + .long 0 + .long 1071843328 + .long 0 + .long 1071841280 + .long 0 + .long 1071839232 + .long 0 + .long 1071838208 + .long 0 + .long 1071836160 + .long 0 + .long 1071834112 + .long 0 + .long 1071833088 + .long 0 + .long 1071831040 + .long 0 + .long 1071830016 + .long 0 + .long 1071827968 + .long 0 + .long 1071825920 + .long 0 + .long 1071824896 + .long 0 + .long 1071822848 + .long 0 + .long 1071821824 + .long 0 + .long 1071819776 + .long 0 + .long 1071817728 + .long 0 + .long 1071816704 + .long 0 + .long 1071814656 + .long 0 + .long 1071813632 + .long 0 + .long 1071811584 + .long 0 + .long 1071810560 + .long 0 + .long 1071808512 + .long 0 + .long 1071806464 + .long 0 + .long 1071805440 + .long 0 + .long 1071803392 + .long 0 + .long 1071802368 + .long 0 + .long 1071800320 + .long 0 + .long 1071799296 + .long 0 + .long 1071797248 + .long 0 + .long 1071796224 + .long 0 + .long 1071794176 + .long 0 + .long 1071793152 + .long 0 + .long 1071791104 + .long 0 + .long 1071790080 + .long 0 + .long 1071788032 + .long 0 + .long 1071787008 + .long 0 + .long 1071784960 + .long 0 + .long 1071783936 + .long 0 + .long 1071782912 + .long 0 + .long 1071780864 + .long 0 + .long 1071779840 + .long 0 + .long 1071777792 + .long 0 + .long 1071776768 + .long 0 + .long 1071774720 + .long 0 + .long 1071773696 + .long 0 + .long 1071772672 + .long 0 + .long 1071770624 + .long 0 + .long 1071769600 + .long 0 + .long 1071767552 + .long 0 + .long 1071766528 + .long 0 + .long 1071765504 + .long 0 + .long 1071763456 + .long 0 + .long 1071762432 + .long 0 + .long 1071760384 + .long 0 + .long 1071759360 + .long 0 + .long 1071758336 + .long 0 + .long 1071756288 + .long 0 + .long 1071755264 + .long 0 + .long 1071754240 + .long 0 + .long 1071752192 + .long 0 + .long 1071751168 + .long 0 + .long 1071750144 + .long 0 + .long 1071748096 + .long 0 + .long 1071747072 + .long 0 + .long 1071746048 + .long 0 + .long 1071744000 + .long 0 + .long 1071742976 + .long 0 + .long 1071741952 + .long 0 + .long 1071739904 + .long 0 + .long 1071738880 + .long 0 + .long 1071737856 + .long 0 + .long 1071736832 + .long 0 + .long 1071734784 + .long 0 + .long 1071733760 + .long 0 + .long 1071732736 + .long 0 + .long 1071730688 + .long 0 + .long 1071729664 + .long 0 + .long 1071728640 + .long 0 + .long 1071727616 + .long 0 + .long 1071725568 + .long 0 + .long 1071724544 + .long 0 + .long 1071723520 + .long 0 + .long 1071722496 + .long 0 + .long 1071720448 + .long 0 + .long 1071719424 + .long 0 + .long 1071718400 + .long 0 + .long 1071717376 + .long 0 + .long 1071715328 + .long 0 + .long 1071714304 + .long 0 + .long 1071713280 + .long 0 + .long 1071712256 + .long 0 + .long 1071711232 + .long 0 + .long 1071709184 + .long 0 + .long 1071708160 + .long 0 + .long 1071707136 + .long 0 + .long 1071706112 + .long 0 + .long 1071705088 + .long 0 + .long 1071704064 + .long 0 + .long 1071702016 + .long 0 + .long 1071700992 + .long 0 + .long 1071699968 + .long 0 + .long 1071698944 + .long 0 + .long 1071697920 + .long 0 + .long 1071696896 + .long 0 + .long 1071694848 + .long 0 + .long 1071693824 + .long 0 + .long 1071692800 + .long 0 + .long 1071691776 + .long 0 + .long 1071690752 + .long 0 + .long 1071689728 + .long 0 + .long 1071688704 + .long 0 + .long 1071686656 + .long 0 + .long 1071685632 + .long 0 + .long 1071684608 + .long 0 + .long 1071683584 + .long 0 + .long 1071682560 + .long 0 + .long 1071681536 + .long 0 + .long 1071680512 + .long 0 + .long 1071679488 + .long 0 + .long 1071677440 + .long 0 + .long 1071676416 + .long 0 + .long 1071675392 + .long 0 + .long 1071674368 + .long 0 + .long 1071673344 + .long 0 + .long 1071672320 + .long 0 + .long 1071671296 + .long 0 + .long 1071670272 + .long 0 + .long 1071669248 + .long 0 + .long 1071668224 + .long 0 + .long 1071667200 + .long 0 + .long 1071666176 + .long 0 + .long 1071665152 + .long 0 + .long 1071663104 + .long 0 + .long 1071662080 + .long 0 + .long 1071661056 + .long 0 + .long 1071660032 + .long 0 + .long 1071659008 + .long 0 + .long 1071657984 + .long 0 + .long 1071656960 + .long 0 + .long 1071655936 + .long 0 + .long 1071654912 + .long 0 + .long 1071653888 + .long 0 + .long 1071652864 + .long 0 + .long 1071651840 + .long 0 + .long 1071650816 + .long 0 + .long 1071649792 + .long 0 + .long 1071648768 + .long 0 + .long 1071647744 + .long 0 + .long 1071646720 + .long 0 + .long 1071645696 + .long 0 + .long 1071644672 + .long 0 + .long 1101004800 + .long 1073741824 + .long 1095761920 + .long 256 + .long 1118830592 + .long 0 + .long 1048576 + .long 0 + .long 1017118720 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 0 + .long 1072693248 + .long 0 + .long 1071644672 + .long 1476395008 + .long 1069897045 + .long 1768958041 + .long 3189069141 + .long 805306368 + .long 1068708659 + .long 3580333578 + .long 1040816593 + .long 3067382784 + .long 1067899757 + .long 3397590151 + .long 1067392113 + .long 2939529726 + .long 1066854585 + .long 1423429166 + .long 1066517752 + .long 1775218934 + .long 1066178574 + .long 1185392460 + .long 1065859647 + .long 289998670 + .long 1065577550 + .long 3179807072 + .long 1065648121 + .long 3781007284 + .long 1061576176 + .long 2482106687 + .long 1067019199 + .long 763519713 + .long 3214591591 + .long 3695107454 + .long 1067530646 + .long 0 + .long 1073741824 + .long 1124791109 + .long 1006764147 + .long 1476395008 + .long 1069897045 + .long 1953913876 + .long 3189069141 + .long 805306368 + .long 1067660083 + .long 165110192 + .long 1039768033 + .long 3067304082 + .long 1065802605 + .long 3404727379 + .long 1064246385 + .long 2737480376 + .long 1062660281 + .long 933797922 + .long 1061274873 + .long 1475716730 + .long 1059887095 + .long 1511619763 + .long 1058519827 + .long 556024211 + .long 1057187555 + .long 3482101045 + .long 1056217350 + .long 1174622859 + .long 1050762633 + .long 899668651 + .long 1055506366 + .long 1081094694 + .long 3202035365 + .long 2559814773 + .long 1053906576 + .long 0 + .long 3219128320 + .long 0 + .long 1071120384 + .long 0 + .long 3218341888 + .long 0 + .long 1070694400 + .long 0 + .long 3218046976 + .long 0 + .long 1070391296 + .long 0 + .long 3217739776 + .type _vmldASinHATab,@object + .size _vmldASinHATab,4504 diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S new file mode 100644 index 0000000000..e0582f27d4 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core-avx2.S @@ -0,0 +1,20 @@ +/* AVX2 version of vectorized asinf. + Copyright (C) 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 + . */ + +#define _ZGVeN16v_asinf _ZGVeN16v_asinf_avx2_wrapper +#include "../svml_s_asinf16_core.S" diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c new file mode 100644 index 0000000000..4435055566 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core.c @@ -0,0 +1,28 @@ +/* Multiple versions of vectorized asinf, vector length is 16. + Copyright (C) 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 + . */ + +#define SYMBOL_NAME _ZGVeN16v_asinf +#include "ifunc-mathvec-avx512-skx.h" + +libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ()); + +#ifdef SHARED +__hidden_ver1 (_ZGVeN16v_asinf, __GI__ZGVeN16v_asinf, + __redirect__ZGVeN16v_asinf) + __attribute__ ((visibility ("hidden"))); +#endif diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S new file mode 100644 index 0000000000..20dea4c2e1 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf16_core_avx512.S @@ -0,0 +1,2173 @@ +/* Function asinf vectorized with AVX-512. + Copyright (C) 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 + https://www.gnu.org/licenses/. */ + +/* + * ALGORITHM DESCRIPTION: + * + * SelMask = (|x| >= 0.5) ? 1 : 0; + * R = SelMask ? sqrt(0.5 - 0.5*|x|) : |x| + * asin(x) = (SelMask ? (Pi/2 - 2*Poly(R)) : Poly(R))*(-1)^sign(x) + * + * + */ + +#include + + .text +ENTRY(_ZGVeN16v_asinf_skx) + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-64, %rsp + subq $192, %rsp + vmovups __svml_sasin_data_internal(%rip), %zmm4 + vmovups 64+__svml_sasin_data_internal(%rip), %zmm6 + +/* SQ ~ -2*sqrt(Y) */ + vmovups 192+__svml_sasin_data_internal(%rip), %zmm8 + vmovups 448+__svml_sasin_data_internal(%rip), %zmm12 + vmovups 512+__svml_sasin_data_internal(%rip), %zmm13 + vmovups 256+__svml_sasin_data_internal(%rip), %zmm7 + vmovaps %zmm0, %zmm3 + +/* x = |arg| */ + vandps %zmm3, %zmm4, %zmm2 + vandnps %zmm3, %zmm4, %zmm1 + +/* x^2 */ + vmulps {rn-sae}, %zmm2, %zmm2, %zmm5 + vcmpps $17, {sae}, %zmm2, %zmm7, %k0 + vcmpps $21, {sae}, %zmm6, %zmm2, %k2 + vmovups 704+__svml_sasin_data_internal(%rip), %zmm7 + kmovw %k0, %edx + +/* Y = 0.5 - 0.5*x */ + vmovaps %zmm6, %zmm9 + vfnmadd231ps {rn-sae}, %zmm2, %zmm6, %zmm9 + vmovups 896+__svml_sasin_data_internal(%rip), %zmm6 + vrsqrt14ps %zmm9, %zmm10 + vcmpps $17, {sae}, %zmm8, %zmm9, %k1 + vminps {sae}, %zmm9, %zmm5, %zmm0 + vmovups 576+__svml_sasin_data_internal(%rip), %zmm8 + vmovups 832+__svml_sasin_data_internal(%rip), %zmm5 + vxorps %zmm10, %zmm10, %zmm10{%k1} + vaddps {rn-sae}, %zmm9, %zmm9, %zmm14 + vmulps {rn-sae}, %zmm10, %zmm10, %zmm11 + vmulps {rn-sae}, %zmm10, %zmm14, %zmm4 + vfmsub213ps {rn-sae}, %zmm12, %zmm11, %zmm14 + vmulps {rn-sae}, %zmm14, %zmm4, %zmm15 + vfmadd231ps {rn-sae}, %zmm14, %zmm13, %zmm8 + vmovups 768+__svml_sasin_data_internal(%rip), %zmm14 + +/* polynomial */ + vmovups 640+__svml_sasin_data_internal(%rip), %zmm13 + vfmsub213ps {rn-sae}, %zmm4, %zmm15, %zmm8 + vfmadd231ps {rn-sae}, %zmm0, %zmm14, %zmm5 + vfmadd231ps {rn-sae}, %zmm0, %zmm13, %zmm7 + vmulps {rn-sae}, %zmm0, %zmm0, %zmm15 + vblendmps %zmm8, %zmm2, %zmm2{%k2} + vfmadd213ps {rn-sae}, %zmm5, %zmm15, %zmm7 + vfmadd213ps {rn-sae}, %zmm6, %zmm0, %zmm7 + vmulps {rn-sae}, %zmm0, %zmm7, %zmm9 + vmovups 960+__svml_sasin_data_internal(%rip), %zmm0 + vfmadd213ps {rn-sae}, %zmm2, %zmm2, %zmm9 + vaddps {rn-sae}, %zmm0, %zmm9, %zmm9{%k2} + vxorps %zmm1, %zmm9, %zmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + +.LBL_1_3: + vmovups %zmm3, 64(%rsp) + vmovups %zmm0, 128(%rsp) + je .LBL_1_2 + xorl %eax, %eax + vzeroupper + kmovw %k4, 24(%rsp) + kmovw %k5, 16(%rsp) + kmovw %k6, 8(%rsp) + kmovw %k7, (%rsp) + movq %rsi, 40(%rsp) + movq %rdi, 32(%rsp) + movq %r12, 56(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 48(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_7: + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + incl %r12d + cmpl $16, %r12d + jl .LBL_1_7 + kmovw 24(%rsp), %k4 + cfi_restore(122) + kmovw 16(%rsp), %k5 + cfi_restore(123) + kmovw 8(%rsp), %k6 + cfi_restore(124) + kmovw (%rsp), %k7 + cfi_restore(125) + vmovups 128(%rsp), %zmm0 + movq 40(%rsp), %rsi + cfi_restore(4) + movq 32(%rsp), %rdi + cfi_restore(5) + movq 56(%rsp), %r12 + cfi_restore(12) + movq 48(%rsp), %r13 + cfi_restore(13) + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_10: + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + call __svml_sasin_cout_rare_internal + jmp .LBL_1_8 + +END(_ZGVeN16v_asinf_skx) + + .align 16,0x90 + +__svml_sasin_cout_rare_internal: + + cfi_startproc + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_12 + pxor %xmm0, %xmm0 + cvtss2sd (%rdi), %xmm0 + movsd %xmm0, -32(%rsp) + andb $127, -25(%rsp) + movsd -32(%rsp), %xmm12 + movsd 4160+_vmldASinHATab(%rip), %xmm0 + comisd %xmm12, %xmm0 + jb .LBL_2_10 + movsd 4168+_vmldASinHATab(%rip), %xmm1 + comisd %xmm12, %xmm1 + jbe .LBL_2_9 + comisd 4136+_vmldASinHATab(%rip), %xmm12 + jbe .LBL_2_6 + movsd 4104+_vmldASinHATab(%rip), %xmm13 + movaps %xmm12, %xmm5 + mulsd %xmm12, %xmm13 + movaps %xmm12, %xmm7 + movsd %xmm13, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd -32(%rsp), %xmm14 + movsd %xmm14, -56(%rsp) + movsd -48(%rsp), %xmm8 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd 4296+_vmldASinHATab(%rip), %xmm8 + subsd %xmm6, %xmm5 + movsd %xmm5, -56(%rsp) + movaps %xmm12, %xmm5 + movsd -48(%rsp), %xmm9 + movaps %xmm9, %xmm13 + addsd %xmm9, %xmm7 + mulsd %xmm9, %xmm13 + movsd -56(%rsp), %xmm11 + movaps %xmm13, %xmm10 + mulsd %xmm11, %xmm7 + mulsd %xmm13, %xmm1 + addsd %xmm7, %xmm10 + mulsd %xmm10, %xmm8 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm2 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd %xmm13, %xmm2 + addsd 4288+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm0 + addsd 4280+_vmldASinHATab(%rip), %xmm8 + subsd %xmm0, %xmm3 + mulsd %xmm10, %xmm8 + movsd %xmm3, -48(%rsp) + movsd -48(%rsp), %xmm4 + addsd 4272+_vmldASinHATab(%rip), %xmm8 + subsd %xmm4, %xmm13 + mulsd %xmm10, %xmm8 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm6 + mulsd %xmm6, %xmm9 + addsd 4264+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm6, %xmm11 + mulsd %xmm10, %xmm8 + mulsd %xmm9, %xmm1 + addsd 4256+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movaps %xmm9, %xmm3 + movsd -56(%rsp), %xmm14 + movaps %xmm6, %xmm4 + movsd %xmm1, -48(%rsp) + addsd %xmm14, %xmm7 + addsd 4248+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm7, %xmm5 + mulsd %xmm10, %xmm8 + addsd %xmm5, %xmm11 + addsd 4240+_vmldASinHATab(%rip), %xmm8 + movsd -48(%rsp), %xmm2 + mulsd %xmm10, %xmm8 + subsd %xmm9, %xmm2 + addsd %xmm11, %xmm9 + addsd 4232+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm9, %xmm7 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm0 + addsd 4224+_vmldASinHATab(%rip), %xmm8 + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm5 + mulsd %xmm10, %xmm8 + subsd %xmm5, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm5 + movaps %xmm5, %xmm13 + addsd 4216+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm3, %xmm4 + addsd %xmm11, %xmm13 + mulsd %xmm10, %xmm8 + mulsd %xmm13, %xmm6 + addsd 4208+_vmldASinHATab(%rip), %xmm8 + addsd %xmm7, %xmm6 + mulsd %xmm10, %xmm8 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm7 + addsd 4200+_vmldASinHATab(%rip), %xmm8 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm1 + movsd 4184+_vmldASinHATab(%rip), %xmm10 + subsd %xmm4, %xmm1 + mulsd %xmm9, %xmm10 + addsd %xmm6, %xmm4 + movsd %xmm1, -56(%rsp) + movaps %xmm12, %xmm9 + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd 4176+_vmldASinHATab(%rip), %xmm1 + subsd %xmm2, %xmm0 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm11 + mulsd %xmm4, %xmm8 + addsd %xmm3, %xmm9 + mulsd %xmm1, %xmm5 + addsd %xmm11, %xmm10 + movsd %xmm0, -48(%rsp) + addsd %xmm10, %xmm8 + movsd -48(%rsp), %xmm7 + addsd %xmm5, %xmm8 + subsd %xmm7, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd %xmm9, -48(%rsp) + addsd %xmm2, %xmm6 + movsd -48(%rsp), %xmm11 + movsd 4192+_vmldASinHATab(%rip), %xmm4 + subsd %xmm11, %xmm12 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm6 + addsd %xmm12, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movaps %xmm3, %xmm12 + movsd -56(%rsp), %xmm7 + addsd %xmm0, %xmm12 + addsd %xmm7, %xmm8 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm12 + subsd %xmm12, %xmm3 + addsd %xmm3, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm9 + movsd -56(%rsp), %xmm0 + movb 3(%rdi), %dil + addsd %xmm0, %xmm8 + andb $-128, %dil + addsd %xmm8, %xmm9 + addsd %xmm9, %xmm6 + movsd %xmm6, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_6: + comisd 4128+_vmldASinHATab(%rip), %xmm12 + jb .LBL_2_8 + addsd %xmm0, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + mulsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + movb 3(%rdi), %dil + andb $127, %dl + andb $-128, %dil + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_8: + mulsd %xmm12, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + movb 3(%rdi), %dil + andb $-128, %dil + addsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_9: + movaps %xmm0, %xmm9 + movzwl 4166+_vmldASinHATab(%rip), %r9d + pxor %xmm15, %xmm15 + andl $-32753, %r9d + subsd %xmm12, %xmm9 + subsd %xmm0, %xmm15 + mulsd %xmm9, %xmm1 + movsd %xmm1, -32(%rsp) + movzwl -26(%rsp), %ecx + andl $32752, %ecx + shrl $4, %ecx + addl $-1023, %ecx + movl %ecx, %r8d + movl %ecx, %edx + negl %r8d + addl $1023, %r8d + andl $2047, %r8d + shll $4, %r8d + movsd %xmm0, -24(%rsp) + orl %r8d, %r9d + movw %r9w, -18(%rsp) + andl $1, %edx + movsd -24(%rsp), %xmm10 + movl %edx, %r10d + mulsd %xmm10, %xmm1 + lea _vmldASinHATab(%rip), %r8 + movaps %xmm1, %xmm6 + movsd 4112+_vmldASinHATab(%rip), %xmm7 + addsd %xmm1, %xmm6 + jne .LBL_54 + movaps %xmm1, %xmm6 + +.LBL_54: + mulsd %xmm6, %xmm7 + movaps %xmm6, %xmm8 + movaps %xmm7, %xmm11 + subl %edx, %ecx + movsd 4120+_vmldASinHATab(%rip), %xmm13 + subsd %xmm6, %xmm11 + addsd %xmm1, %xmm13 + movsd %xmm11, -56(%rsp) + movsd -56(%rsp), %xmm12 + movsd %xmm13, -16(%rsp) + subsd %xmm12, %xmm7 + movl -16(%rsp), %r11d + movaps %xmm7, %xmm4 + shll $8, %r10d + andl $511, %r11d + addl %r10d, %r11d + subsd %xmm7, %xmm8 + movsd (%r8,%r11,8), %xmm3 + addsd %xmm8, %xmm4 + mulsd %xmm3, %xmm7 + movaps %xmm3, %xmm14 + mulsd %xmm3, %xmm14 + mulsd %xmm14, %xmm4 + movsd 4496+_vmldASinHATab(%rip), %xmm5 + addsd %xmm15, %xmm4 + mulsd %xmm4, %xmm5 + shrl $1, %ecx + addsd 4488+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addl $1023, %ecx + andl $2047, %ecx + addsd 4480+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movzwl 4166+_vmldASinHATab(%rip), %r9d + shll $4, %ecx + andl $-32753, %r9d + movsd %xmm0, -8(%rsp) + orl %ecx, %r9d + movw %r9w, -2(%rsp) + movsd -8(%rsp), %xmm12 + mulsd %xmm12, %xmm7 + addsd 4472+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + mulsd %xmm7, %xmm1 + addsd 4464+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + movsd 4336+_vmldASinHATab(%rip), %xmm13 + subsd %xmm7, %xmm0 + addsd 4456+_vmldASinHATab(%rip), %xmm5 + addsd 4344+_vmldASinHATab(%rip), %xmm13 + mulsd %xmm4, %xmm5 + mulsd %xmm9, %xmm13 + addsd 4448+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + mulsd %xmm6, %xmm5 + movsd %xmm0, -56(%rsp) + addsd %xmm5, %xmm8 + movsd 4440+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm3, %xmm8 + addsd 4432+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm12, %xmm8 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm2 + movsd 4320+_vmldASinHATab(%rip), %xmm14 + subsd %xmm2, %xmm10 + addsd 4424+_vmldASinHATab(%rip), %xmm5 + addsd 4328+_vmldASinHATab(%rip), %xmm14 + mulsd %xmm9, %xmm5 + addsd %xmm13, %xmm14 + addsd 4416+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm14 + mulsd %xmm9, %xmm5 + movsd %xmm10, -48(%rsp) + movaps %xmm9, %xmm2 + movsd -48(%rsp), %xmm11 + movsd 4104+_vmldASinHATab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm9, %xmm3 + addsd 4408+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd 4304+_vmldASinHATab(%rip), %xmm4 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm7 + movsd %xmm3, -48(%rsp) + addsd %xmm7, %xmm8 + addsd 4400+_vmldASinHATab(%rip), %xmm5 + addsd 4312+_vmldASinHATab(%rip), %xmm4 + mulsd %xmm9, %xmm5 + addsd %xmm14, %xmm4 + addsd 4392+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm1 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm9, %xmm1 + addsd 4384+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd %xmm1, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + addsd 4376+_vmldASinHATab(%rip), %xmm5 + subsd %xmm15, %xmm0 + mulsd %xmm9, %xmm5 + movsd %xmm0, -48(%rsp) + movsd 4320+_vmldASinHATab(%rip), %xmm0 + addsd 4368+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4360+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4352+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + addsd %xmm5, %xmm4 + mulsd %xmm4, %xmm8 + movsd -48(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm4 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm13 + mulsd %xmm4, %xmm0 + addsd %xmm9, %xmm4 + mulsd %xmm13, %xmm7 + movsd -56(%rsp), %xmm3 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + mulsd %xmm3, %xmm4 + subsd %xmm13, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm1 + movsd 4304+_vmldASinHATab(%rip), %xmm10 + subsd %xmm1, %xmm11 + movsd %xmm11, -48(%rsp) + movaps %xmm0, %xmm1 + movsd -48(%rsp), %xmm12 + movsd 4304+_vmldASinHATab(%rip), %xmm11 + subsd %xmm12, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm7 + mulsd 4336+_vmldASinHATab(%rip), %xmm7 + movsd -56(%rsp), %xmm2 + addsd %xmm7, %xmm1 + addsd %xmm2, %xmm4 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd %xmm7, -16(%rsp) + subsd %xmm14, %xmm0 + mulsd 4336+_vmldASinHATab(%rip), %xmm4 + addsd %xmm0, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm12 + movsd -56(%rsp), %xmm1 + addsd %xmm12, %xmm10 + movsd %xmm10, -48(%rsp) + movsd -48(%rsp), %xmm15 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm15, %xmm11 + movsd 4320+_vmldASinHATab(%rip), %xmm2 + addsd %xmm11, %xmm12 + mulsd %xmm3, %xmm2 + movsd %xmm12, -56(%rsp) + movsd -48(%rsp), %xmm15 + mulsd %xmm15, %xmm7 + movsd -56(%rsp), %xmm0 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + movsd 4344+_vmldASinHATab(%rip), %xmm3 + subsd %xmm15, %xmm10 + mulsd %xmm9, %xmm3 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm13 + subsd %xmm13, %xmm11 + addsd 4328+_vmldASinHATab(%rip), %xmm3 + movsd %xmm11, -48(%rsp) + movsd -48(%rsp), %xmm14 + mulsd %xmm9, %xmm3 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm7 + addsd %xmm7, %xmm4 + addsd 4312+_vmldASinHATab(%rip), %xmm3 + addsd %xmm2, %xmm4 + addsd %xmm5, %xmm3 + addsd %xmm1, %xmm4 + addsd %xmm0, %xmm4 + movsd 4144+_vmldASinHATab(%rip), %xmm0 + addsd %xmm3, %xmm4 + mulsd %xmm6, %xmm4 + mulsd %xmm10, %xmm6 + addsd %xmm8, %xmm4 + movaps %xmm0, %xmm8 + subsd %xmm6, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm9 + subsd %xmm9, %xmm0 + subsd %xmm6, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + movb 3(%rdi), %dil + andb $-128, %dil + addsd 4152+_vmldASinHATab(%rip), %xmm1 + subsd %xmm4, %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm3 + cvtsd2ss %xmm3, %xmm3 + movss %xmm3, (%rsi) + ret + +.LBL_2_10: + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_12: + movss (%rdi), %xmm0 + divss %xmm0, %xmm0 + testl $8388607, (%rdi) + movss %xmm0, (%rsi) + sete %al + ret + + cfi_endproc + + .type __svml_sasin_cout_rare_internal,@function + .size __svml_sasin_cout_rare_internal,.-__svml_sasin_cout_rare_internal + + .section .rodata, "a" + .align 64 + +__svml_sasin_data_internal: + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .type __svml_sasin_data_internal,@object + .size __svml_sasin_data_internal,1472 + .align 32 + +_vmldASinHATab: + .long 0 + .long 1072693248 + .long 0 + .long 1072689152 + .long 0 + .long 1072685056 + .long 0 + .long 1072680960 + .long 0 + .long 1072676864 + .long 0 + .long 1072672768 + .long 0 + .long 1072668672 + .long 0 + .long 1072665600 + .long 0 + .long 1072661504 + .long 0 + .long 1072657408 + .long 0 + .long 1072653312 + .long 0 + .long 1072649216 + .long 0 + .long 1072646144 + .long 0 + .long 1072642048 + .long 0 + .long 1072637952 + .long 0 + .long 1072634880 + .long 0 + .long 1072630784 + .long 0 + .long 1072626688 + .long 0 + .long 1072623616 + .long 0 + .long 1072619520 + .long 0 + .long 1072615424 + .long 0 + .long 1072612352 + .long 0 + .long 1072608256 + .long 0 + .long 1072605184 + .long 0 + .long 1072601088 + .long 0 + .long 1072598016 + .long 0 + .long 1072593920 + .long 0 + .long 1072590848 + .long 0 + .long 1072586752 + .long 0 + .long 1072583680 + .long 0 + .long 1072580608 + .long 0 + .long 1072576512 + .long 0 + .long 1072573440 + .long 0 + .long 1072570368 + .long 0 + .long 1072566272 + .long 0 + .long 1072563200 + .long 0 + .long 1072560128 + .long 0 + .long 1072556032 + .long 0 + .long 1072552960 + .long 0 + .long 1072549888 + .long 0 + .long 1072546816 + .long 0 + .long 1072542720 + .long 0 + .long 1072539648 + .long 0 + .long 1072536576 + .long 0 + .long 1072533504 + .long 0 + .long 1072530432 + .long 0 + .long 1072527360 + .long 0 + .long 1072523264 + .long 0 + .long 1072520192 + .long 0 + .long 1072517120 + .long 0 + .long 1072514048 + .long 0 + .long 1072510976 + .long 0 + .long 1072507904 + .long 0 + .long 1072504832 + .long 0 + .long 1072501760 + .long 0 + .long 1072498688 + .long 0 + .long 1072495616 + .long 0 + .long 1072492544 + .long 0 + .long 1072489472 + .long 0 + .long 1072486400 + .long 0 + .long 1072483328 + .long 0 + .long 1072480256 + .long 0 + .long 1072478208 + .long 0 + .long 1072475136 + .long 0 + .long 1072472064 + .long 0 + .long 1072468992 + .long 0 + .long 1072465920 + .long 0 + .long 1072462848 + .long 0 + .long 1072459776 + .long 0 + .long 1072457728 + .long 0 + .long 1072454656 + .long 0 + .long 1072451584 + .long 0 + .long 1072448512 + .long 0 + .long 1072446464 + .long 0 + .long 1072443392 + .long 0 + .long 1072440320 + .long 0 + .long 1072437248 + .long 0 + .long 1072435200 + .long 0 + .long 1072432128 + .long 0 + .long 1072429056 + .long 0 + .long 1072427008 + .long 0 + .long 1072423936 + .long 0 + .long 1072420864 + .long 0 + .long 1072418816 + .long 0 + .long 1072415744 + .long 0 + .long 1072412672 + .long 0 + .long 1072410624 + .long 0 + .long 1072407552 + .long 0 + .long 1072405504 + .long 0 + .long 1072402432 + .long 0 + .long 1072400384 + .long 0 + .long 1072397312 + .long 0 + .long 1072395264 + .long 0 + .long 1072392192 + .long 0 + .long 1072390144 + .long 0 + .long 1072387072 + .long 0 + .long 1072385024 + .long 0 + .long 1072381952 + .long 0 + .long 1072379904 + .long 0 + .long 1072376832 + .long 0 + .long 1072374784 + .long 0 + .long 1072371712 + .long 0 + .long 1072369664 + .long 0 + .long 1072366592 + .long 0 + .long 1072364544 + .long 0 + .long 1072362496 + .long 0 + .long 1072359424 + .long 0 + .long 1072357376 + .long 0 + .long 1072355328 + .long 0 + .long 1072352256 + .long 0 + .long 1072350208 + .long 0 + .long 1072347136 + .long 0 + .long 1072345088 + .long 0 + .long 1072343040 + .long 0 + .long 1072340992 + .long 0 + .long 1072337920 + .long 0 + .long 1072335872 + .long 0 + .long 1072333824 + .long 0 + .long 1072330752 + .long 0 + .long 1072328704 + .long 0 + .long 1072326656 + .long 0 + .long 1072324608 + .long 0 + .long 1072321536 + .long 0 + .long 1072319488 + .long 0 + .long 1072317440 + .long 0 + .long 1072315392 + .long 0 + .long 1072313344 + .long 0 + .long 1072310272 + .long 0 + .long 1072308224 + .long 0 + .long 1072306176 + .long 0 + .long 1072304128 + .long 0 + .long 1072302080 + .long 0 + .long 1072300032 + .long 0 + .long 1072296960 + .long 0 + .long 1072294912 + .long 0 + .long 1072292864 + .long 0 + .long 1072290816 + .long 0 + .long 1072288768 + .long 0 + .long 1072286720 + .long 0 + .long 1072284672 + .long 0 + .long 1072282624 + .long 0 + .long 1072280576 + .long 0 + .long 1072278528 + .long 0 + .long 1072275456 + .long 0 + .long 1072273408 + .long 0 + .long 1072271360 + .long 0 + .long 1072269312 + .long 0 + .long 1072267264 + .long 0 + .long 1072265216 + .long 0 + .long 1072263168 + .long 0 + .long 1072261120 + .long 0 + .long 1072259072 + .long 0 + .long 1072257024 + .long 0 + .long 1072254976 + .long 0 + .long 1072252928 + .long 0 + .long 1072250880 + .long 0 + .long 1072248832 + .long 0 + .long 1072246784 + .long 0 + .long 1072244736 + .long 0 + .long 1072243712 + .long 0 + .long 1072241664 + .long 0 + .long 1072239616 + .long 0 + .long 1072237568 + .long 0 + .long 1072235520 + .long 0 + .long 1072233472 + .long 0 + .long 1072231424 + .long 0 + .long 1072229376 + .long 0 + .long 1072227328 + .long 0 + .long 1072225280 + .long 0 + .long 1072223232 + .long 0 + .long 1072222208 + .long 0 + .long 1072220160 + .long 0 + .long 1072218112 + .long 0 + .long 1072216064 + .long 0 + .long 1072214016 + .long 0 + .long 1072211968 + .long 0 + .long 1072210944 + .long 0 + .long 1072208896 + .long 0 + .long 1072206848 + .long 0 + .long 1072204800 + .long 0 + .long 1072202752 + .long 0 + .long 1072201728 + .long 0 + .long 1072199680 + .long 0 + .long 1072197632 + .long 0 + .long 1072195584 + .long 0 + .long 1072193536 + .long 0 + .long 1072192512 + .long 0 + .long 1072190464 + .long 0 + .long 1072188416 + .long 0 + .long 1072186368 + .long 0 + .long 1072185344 + .long 0 + .long 1072183296 + .long 0 + .long 1072181248 + .long 0 + .long 1072179200 + .long 0 + .long 1072178176 + .long 0 + .long 1072176128 + .long 0 + .long 1072174080 + .long 0 + .long 1072173056 + .long 0 + .long 1072171008 + .long 0 + .long 1072168960 + .long 0 + .long 1072167936 + .long 0 + .long 1072165888 + .long 0 + .long 1072163840 + .long 0 + .long 1072161792 + .long 0 + .long 1072160768 + .long 0 + .long 1072158720 + .long 0 + .long 1072157696 + .long 0 + .long 1072155648 + .long 0 + .long 1072153600 + .long 0 + .long 1072152576 + .long 0 + .long 1072150528 + .long 0 + .long 1072148480 + .long 0 + .long 1072147456 + .long 0 + .long 1072145408 + .long 0 + .long 1072143360 + .long 0 + .long 1072142336 + .long 0 + .long 1072140288 + .long 0 + .long 1072139264 + .long 0 + .long 1072137216 + .long 0 + .long 1072135168 + .long 0 + .long 1072134144 + .long 0 + .long 1072132096 + .long 0 + .long 1072131072 + .long 0 + .long 1072129024 + .long 0 + .long 1072128000 + .long 0 + .long 1072125952 + .long 0 + .long 1072124928 + .long 0 + .long 1072122880 + .long 0 + .long 1072120832 + .long 0 + .long 1072119808 + .long 0 + .long 1072117760 + .long 0 + .long 1072116736 + .long 0 + .long 1072114688 + .long 0 + .long 1072113664 + .long 0 + .long 1072111616 + .long 0 + .long 1072110592 + .long 0 + .long 1072108544 + .long 0 + .long 1072107520 + .long 0 + .long 1072105472 + .long 0 + .long 1072104448 + .long 0 + .long 1072102400 + .long 0 + .long 1072101376 + .long 0 + .long 1072099328 + .long 0 + .long 1072098304 + .long 0 + .long 1072096256 + .long 0 + .long 1072095232 + .long 0 + .long 1072094208 + .long 0 + .long 1072092160 + .long 0 + .long 1072091136 + .long 0 + .long 1072089088 + .long 0 + .long 1072088064 + .long 0 + .long 1072086016 + .long 0 + .long 1072084992 + .long 0 + .long 1072082944 + .long 0 + .long 1072081920 + .long 0 + .long 1072080896 + .long 0 + .long 1072078848 + .long 0 + .long 1072075776 + .long 0 + .long 1072073728 + .long 0 + .long 1072070656 + .long 0 + .long 1072067584 + .long 0 + .long 1072064512 + .long 0 + .long 1072061440 + .long 0 + .long 1072059392 + .long 0 + .long 1072056320 + .long 0 + .long 1072053248 + .long 0 + .long 1072051200 + .long 0 + .long 1072048128 + .long 0 + .long 1072045056 + .long 0 + .long 1072043008 + .long 0 + .long 1072039936 + .long 0 + .long 1072037888 + .long 0 + .long 1072034816 + .long 0 + .long 1072031744 + .long 0 + .long 1072029696 + .long 0 + .long 1072026624 + .long 0 + .long 1072024576 + .long 0 + .long 1072021504 + .long 0 + .long 1072019456 + .long 0 + .long 1072016384 + .long 0 + .long 1072014336 + .long 0 + .long 1072011264 + .long 0 + .long 1072009216 + .long 0 + .long 1072006144 + .long 0 + .long 1072004096 + .long 0 + .long 1072002048 + .long 0 + .long 1071998976 + .long 0 + .long 1071996928 + .long 0 + .long 1071993856 + .long 0 + .long 1071991808 + .long 0 + .long 1071989760 + .long 0 + .long 1071986688 + .long 0 + .long 1071984640 + .long 0 + .long 1071982592 + .long 0 + .long 1071979520 + .long 0 + .long 1071977472 + .long 0 + .long 1071975424 + .long 0 + .long 1071972352 + .long 0 + .long 1071970304 + .long 0 + .long 1071968256 + .long 0 + .long 1071966208 + .long 0 + .long 1071964160 + .long 0 + .long 1071961088 + .long 0 + .long 1071959040 + .long 0 + .long 1071956992 + .long 0 + .long 1071954944 + .long 0 + .long 1071952896 + .long 0 + .long 1071949824 + .long 0 + .long 1071947776 + .long 0 + .long 1071945728 + .long 0 + .long 1071943680 + .long 0 + .long 1071941632 + .long 0 + .long 1071939584 + .long 0 + .long 1071937536 + .long 0 + .long 1071935488 + .long 0 + .long 1071933440 + .long 0 + .long 1071930368 + .long 0 + .long 1071928320 + .long 0 + .long 1071926272 + .long 0 + .long 1071924224 + .long 0 + .long 1071922176 + .long 0 + .long 1071920128 + .long 0 + .long 1071918080 + .long 0 + .long 1071916032 + .long 0 + .long 1071913984 + .long 0 + .long 1071911936 + .long 0 + .long 1071909888 + .long 0 + .long 1071907840 + .long 0 + .long 1071905792 + .long 0 + .long 1071903744 + .long 0 + .long 1071901696 + .long 0 + .long 1071900672 + .long 0 + .long 1071898624 + .long 0 + .long 1071896576 + .long 0 + .long 1071894528 + .long 0 + .long 1071892480 + .long 0 + .long 1071890432 + .long 0 + .long 1071888384 + .long 0 + .long 1071886336 + .long 0 + .long 1071884288 + .long 0 + .long 1071883264 + .long 0 + .long 1071881216 + .long 0 + .long 1071879168 + .long 0 + .long 1071877120 + .long 0 + .long 1071875072 + .long 0 + .long 1071873024 + .long 0 + .long 1071872000 + .long 0 + .long 1071869952 + .long 0 + .long 1071867904 + .long 0 + .long 1071865856 + .long 0 + .long 1071864832 + .long 0 + .long 1071862784 + .long 0 + .long 1071860736 + .long 0 + .long 1071858688 + .long 0 + .long 1071856640 + .long 0 + .long 1071855616 + .long 0 + .long 1071853568 + .long 0 + .long 1071851520 + .long 0 + .long 1071850496 + .long 0 + .long 1071848448 + .long 0 + .long 1071846400 + .long 0 + .long 1071844352 + .long 0 + .long 1071843328 + .long 0 + .long 1071841280 + .long 0 + .long 1071839232 + .long 0 + .long 1071838208 + .long 0 + .long 1071836160 + .long 0 + .long 1071834112 + .long 0 + .long 1071833088 + .long 0 + .long 1071831040 + .long 0 + .long 1071830016 + .long 0 + .long 1071827968 + .long 0 + .long 1071825920 + .long 0 + .long 1071824896 + .long 0 + .long 1071822848 + .long 0 + .long 1071821824 + .long 0 + .long 1071819776 + .long 0 + .long 1071817728 + .long 0 + .long 1071816704 + .long 0 + .long 1071814656 + .long 0 + .long 1071813632 + .long 0 + .long 1071811584 + .long 0 + .long 1071810560 + .long 0 + .long 1071808512 + .long 0 + .long 1071806464 + .long 0 + .long 1071805440 + .long 0 + .long 1071803392 + .long 0 + .long 1071802368 + .long 0 + .long 1071800320 + .long 0 + .long 1071799296 + .long 0 + .long 1071797248 + .long 0 + .long 1071796224 + .long 0 + .long 1071794176 + .long 0 + .long 1071793152 + .long 0 + .long 1071791104 + .long 0 + .long 1071790080 + .long 0 + .long 1071788032 + .long 0 + .long 1071787008 + .long 0 + .long 1071784960 + .long 0 + .long 1071783936 + .long 0 + .long 1071782912 + .long 0 + .long 1071780864 + .long 0 + .long 1071779840 + .long 0 + .long 1071777792 + .long 0 + .long 1071776768 + .long 0 + .long 1071774720 + .long 0 + .long 1071773696 + .long 0 + .long 1071772672 + .long 0 + .long 1071770624 + .long 0 + .long 1071769600 + .long 0 + .long 1071767552 + .long 0 + .long 1071766528 + .long 0 + .long 1071765504 + .long 0 + .long 1071763456 + .long 0 + .long 1071762432 + .long 0 + .long 1071760384 + .long 0 + .long 1071759360 + .long 0 + .long 1071758336 + .long 0 + .long 1071756288 + .long 0 + .long 1071755264 + .long 0 + .long 1071754240 + .long 0 + .long 1071752192 + .long 0 + .long 1071751168 + .long 0 + .long 1071750144 + .long 0 + .long 1071748096 + .long 0 + .long 1071747072 + .long 0 + .long 1071746048 + .long 0 + .long 1071744000 + .long 0 + .long 1071742976 + .long 0 + .long 1071741952 + .long 0 + .long 1071739904 + .long 0 + .long 1071738880 + .long 0 + .long 1071737856 + .long 0 + .long 1071736832 + .long 0 + .long 1071734784 + .long 0 + .long 1071733760 + .long 0 + .long 1071732736 + .long 0 + .long 1071730688 + .long 0 + .long 1071729664 + .long 0 + .long 1071728640 + .long 0 + .long 1071727616 + .long 0 + .long 1071725568 + .long 0 + .long 1071724544 + .long 0 + .long 1071723520 + .long 0 + .long 1071722496 + .long 0 + .long 1071720448 + .long 0 + .long 1071719424 + .long 0 + .long 1071718400 + .long 0 + .long 1071717376 + .long 0 + .long 1071715328 + .long 0 + .long 1071714304 + .long 0 + .long 1071713280 + .long 0 + .long 1071712256 + .long 0 + .long 1071711232 + .long 0 + .long 1071709184 + .long 0 + .long 1071708160 + .long 0 + .long 1071707136 + .long 0 + .long 1071706112 + .long 0 + .long 1071705088 + .long 0 + .long 1071704064 + .long 0 + .long 1071702016 + .long 0 + .long 1071700992 + .long 0 + .long 1071699968 + .long 0 + .long 1071698944 + .long 0 + .long 1071697920 + .long 0 + .long 1071696896 + .long 0 + .long 1071694848 + .long 0 + .long 1071693824 + .long 0 + .long 1071692800 + .long 0 + .long 1071691776 + .long 0 + .long 1071690752 + .long 0 + .long 1071689728 + .long 0 + .long 1071688704 + .long 0 + .long 1071686656 + .long 0 + .long 1071685632 + .long 0 + .long 1071684608 + .long 0 + .long 1071683584 + .long 0 + .long 1071682560 + .long 0 + .long 1071681536 + .long 0 + .long 1071680512 + .long 0 + .long 1071679488 + .long 0 + .long 1071677440 + .long 0 + .long 1071676416 + .long 0 + .long 1071675392 + .long 0 + .long 1071674368 + .long 0 + .long 1071673344 + .long 0 + .long 1071672320 + .long 0 + .long 1071671296 + .long 0 + .long 1071670272 + .long 0 + .long 1071669248 + .long 0 + .long 1071668224 + .long 0 + .long 1071667200 + .long 0 + .long 1071666176 + .long 0 + .long 1071665152 + .long 0 + .long 1071663104 + .long 0 + .long 1071662080 + .long 0 + .long 1071661056 + .long 0 + .long 1071660032 + .long 0 + .long 1071659008 + .long 0 + .long 1071657984 + .long 0 + .long 1071656960 + .long 0 + .long 1071655936 + .long 0 + .long 1071654912 + .long 0 + .long 1071653888 + .long 0 + .long 1071652864 + .long 0 + .long 1071651840 + .long 0 + .long 1071650816 + .long 0 + .long 1071649792 + .long 0 + .long 1071648768 + .long 0 + .long 1071647744 + .long 0 + .long 1071646720 + .long 0 + .long 1071645696 + .long 0 + .long 1071644672 + .long 0 + .long 1101004800 + .long 1073741824 + .long 1095761920 + .long 256 + .long 1118830592 + .long 0 + .long 1048576 + .long 0 + .long 1017118720 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 0 + .long 1072693248 + .long 0 + .long 1071644672 + .long 1476395008 + .long 1069897045 + .long 1768958041 + .long 3189069141 + .long 805306368 + .long 1068708659 + .long 3580333578 + .long 1040816593 + .long 3067382784 + .long 1067899757 + .long 3397590151 + .long 1067392113 + .long 2939529726 + .long 1066854585 + .long 1423429166 + .long 1066517752 + .long 1775218934 + .long 1066178574 + .long 1185392460 + .long 1065859647 + .long 289998670 + .long 1065577550 + .long 3179807072 + .long 1065648121 + .long 3781007284 + .long 1061576176 + .long 2482106687 + .long 1067019199 + .long 763519713 + .long 3214591591 + .long 3695107454 + .long 1067530646 + .long 0 + .long 1073741824 + .long 1124791109 + .long 1006764147 + .long 1476395008 + .long 1069897045 + .long 1953913876 + .long 3189069141 + .long 805306368 + .long 1067660083 + .long 165110192 + .long 1039768033 + .long 3067304082 + .long 1065802605 + .long 3404727379 + .long 1064246385 + .long 2737480376 + .long 1062660281 + .long 933797922 + .long 1061274873 + .long 1475716730 + .long 1059887095 + .long 1511619763 + .long 1058519827 + .long 556024211 + .long 1057187555 + .long 3482101045 + .long 1056217350 + .long 1174622859 + .long 1050762633 + .long 899668651 + .long 1055506366 + .long 1081094694 + .long 3202035365 + .long 2559814773 + .long 1053906576 + .long 0 + .long 3219128320 + .long 0 + .long 1071120384 + .long 0 + .long 3218341888 + .long 0 + .long 1070694400 + .long 0 + .long 3218046976 + .long 0 + .long 1070391296 + .long 0 + .long 3217739776 + .type _vmldASinHATab,@object + .size _vmldASinHATab,4504 diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S new file mode 100644 index 0000000000..b958db7795 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core-sse2.S @@ -0,0 +1,20 @@ +/* SSE2 version of vectorized asinf, vector length is 4. + Copyright (C) 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 + . */ + +#define _ZGVbN4v_asinf _ZGVbN4v_asinf_sse2 +#include "../svml_s_asinf4_core.S" diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c new file mode 100644 index 0000000000..5a7aa94264 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core.c @@ -0,0 +1,28 @@ +/* Multiple versions of vectorized asinf, vector length is 4. + Copyright (C) 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 + . */ + +#define SYMBOL_NAME _ZGVbN4v_asinf +#include "ifunc-mathvec-sse4_1.h" + +libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ()); + +#ifdef SHARED +__hidden_ver1 (_ZGVbN4v_asinf, __GI__ZGVbN4v_asinf, + __redirect__ZGVbN4v_asinf) + __attribute__ ((visibility ("hidden"))); +#endif diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S new file mode 100644 index 0000000000..e59df80414 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf4_core_sse4.S @@ -0,0 +1,2649 @@ +/* Function asinf vectorized with SSE4. + Copyright (C) 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 + https://www.gnu.org/licenses/. */ + +/* + * ALGORITHM DESCRIPTION: + * + * SelMask = (|x| >= 0.5) ? 1 : 0; + * R = SelMask ? sqrt(0.5 - 0.5*|x|) : |x| + * asin(x) = (SelMask ? (Pi/2 - 2*Poly(R)) : Poly(R))*(-1)^sign(x) + * + * + */ + +#include + + .text +ENTRY(_ZGVbN4v_asinf_sse4) + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-64, %rsp + subq $320, %rsp + movaps %xmm0, %xmm7 + movups __svml_sasin_data_internal(%rip), %xmm5 + movups 64+__svml_sasin_data_internal(%rip), %xmm3 + movups %xmm9, 144(%rsp) + .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + +/* x = |arg| */ + movaps %xmm5, %xmm9 + andps %xmm7, %xmm9 + +/* Y = 0.5 - 0.5*x */ + movaps %xmm3, %xmm4 + mulps %xmm9, %xmm4 + movaps %xmm3, %xmm6 + movups 256+__svml_sasin_data_internal(%rip), %xmm2 + andnps %xmm7, %xmm5 + cmpltps %xmm9, %xmm2 + subps %xmm4, %xmm6 + movmskps %xmm2, %edx + movaps %xmm9, %xmm2 + +/* SQ ~ -2*sqrt(Y) */ + movaps %xmm6, %xmm1 + +/* x^2 */ + movaps %xmm9, %xmm4 + cmpnltps %xmm3, %xmm2 + cmpltps 192+__svml_sasin_data_internal(%rip), %xmm1 + rsqrtps %xmm6, %xmm3 + mulps %xmm9, %xmm4 + andnps %xmm3, %xmm1 + movaps %xmm1, %xmm0 + minps %xmm6, %xmm4 + mulps %xmm1, %xmm0 + addps %xmm6, %xmm6 + mulps %xmm6, %xmm1 + mulps %xmm0, %xmm6 + movups 512+__svml_sasin_data_internal(%rip), %xmm0 + movups 608+__svml_sasin_data_internal(%rip), %xmm3 + mulps %xmm4, %xmm3 + subps 448+__svml_sasin_data_internal(%rip), %xmm6 + mulps %xmm6, %xmm0 + addps 624+__svml_sasin_data_internal(%rip), %xmm3 + mulps %xmm1, %xmm6 + addps 528+__svml_sasin_data_internal(%rip), %xmm0 + mulps %xmm6, %xmm0 + +/* polynomial */ + movups 576+__svml_sasin_data_internal(%rip), %xmm6 + subps %xmm1, %xmm0 + mulps %xmm4, %xmm6 + movaps %xmm4, %xmm1 + andps %xmm2, %xmm0 + mulps %xmm4, %xmm1 + addps 592+__svml_sasin_data_internal(%rip), %xmm6 + mulps %xmm1, %xmm6 + movaps %xmm2, %xmm1 + andnps %xmm9, %xmm1 + addps %xmm6, %xmm3 + mulps %xmm4, %xmm3 + orps %xmm0, %xmm1 + movups 704+__svml_sasin_data_internal(%rip), %xmm0 + andps %xmm2, %xmm0 + addps 640+__svml_sasin_data_internal(%rip), %xmm3 + mulps %xmm3, %xmm4 + mulps %xmm1, %xmm4 + addps %xmm4, %xmm1 + addps %xmm1, %xmm0 + pxor %xmm5, %xmm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + movups 144(%rsp), %xmm9 + cfi_restore(26) + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_3: + movups %xmm7, 192(%rsp) + movups %xmm0, 256(%rsp) + xorl %eax, %eax + movups %xmm8, 96(%rsp) + movups %xmm10, 80(%rsp) + movups %xmm11, 64(%rsp) + movups %xmm12, 48(%rsp) + movups %xmm13, 32(%rsp) + movups %xmm14, 16(%rsp) + movups %xmm15, (%rsp) + movq %rsi, 120(%rsp) + movq %rdi, 112(%rsp) + movq %r12, 136(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 128(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + +.LBL_1_7: + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + incl %r12d + cmpl $4, %r12d + jl .LBL_1_7 + movups 96(%rsp), %xmm8 + cfi_restore(25) + movups 80(%rsp), %xmm10 + cfi_restore(27) + movups 64(%rsp), %xmm11 + cfi_restore(28) + movups 48(%rsp), %xmm12 + cfi_restore(29) + movups 32(%rsp), %xmm13 + cfi_restore(30) + movups 16(%rsp), %xmm14 + cfi_restore(31) + movups (%rsp), %xmm15 + cfi_restore(32) + movq 120(%rsp), %rsi + cfi_restore(4) + movq 112(%rsp), %rdi + cfi_restore(5) + movq 136(%rsp), %r12 + cfi_restore(12) + movq 128(%rsp), %r13 + cfi_restore(13) + movups 256(%rsp), %xmm0 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x38, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xfe, 0xff, 0xff, 0x22 + +.LBL_1_10: + lea 192(%rsp,%r12,4), %rdi + lea 256(%rsp,%r12,4), %rsi + call __svml_sasin_cout_rare_internal + jmp .LBL_1_8 + +END(_ZGVbN4v_asinf_sse4) + + .align 16,0x90 + +__svml_sasin_cout_rare_internal: + + cfi_startproc + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_12 + pxor %xmm0, %xmm0 + cvtss2sd (%rdi), %xmm0 + movsd %xmm0, -32(%rsp) + andb $127, -25(%rsp) + movsd -32(%rsp), %xmm12 + movsd 4160+_vmldASinHATab(%rip), %xmm0 + comisd %xmm12, %xmm0 + jb .LBL_2_10 + movsd 4168+_vmldASinHATab(%rip), %xmm1 + comisd %xmm12, %xmm1 + jbe .LBL_2_9 + comisd 4136+_vmldASinHATab(%rip), %xmm12 + jbe .LBL_2_6 + movsd 4104+_vmldASinHATab(%rip), %xmm13 + movaps %xmm12, %xmm5 + mulsd %xmm12, %xmm13 + movaps %xmm12, %xmm7 + movsd %xmm13, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd -32(%rsp), %xmm14 + movsd %xmm14, -56(%rsp) + movsd -48(%rsp), %xmm8 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd 4296+_vmldASinHATab(%rip), %xmm8 + subsd %xmm6, %xmm5 + movsd %xmm5, -56(%rsp) + movaps %xmm12, %xmm5 + movsd -48(%rsp), %xmm9 + movaps %xmm9, %xmm13 + addsd %xmm9, %xmm7 + mulsd %xmm9, %xmm13 + movsd -56(%rsp), %xmm11 + movaps %xmm13, %xmm10 + mulsd %xmm11, %xmm7 + mulsd %xmm13, %xmm1 + addsd %xmm7, %xmm10 + mulsd %xmm10, %xmm8 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm2 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd %xmm13, %xmm2 + addsd 4288+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm0 + addsd 4280+_vmldASinHATab(%rip), %xmm8 + subsd %xmm0, %xmm3 + mulsd %xmm10, %xmm8 + movsd %xmm3, -48(%rsp) + movsd -48(%rsp), %xmm4 + addsd 4272+_vmldASinHATab(%rip), %xmm8 + subsd %xmm4, %xmm13 + mulsd %xmm10, %xmm8 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm6 + mulsd %xmm6, %xmm9 + addsd 4264+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm6, %xmm11 + mulsd %xmm10, %xmm8 + mulsd %xmm9, %xmm1 + addsd 4256+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movaps %xmm9, %xmm3 + movsd -56(%rsp), %xmm14 + movaps %xmm6, %xmm4 + movsd %xmm1, -48(%rsp) + addsd %xmm14, %xmm7 + addsd 4248+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm7, %xmm5 + mulsd %xmm10, %xmm8 + addsd %xmm5, %xmm11 + addsd 4240+_vmldASinHATab(%rip), %xmm8 + movsd -48(%rsp), %xmm2 + mulsd %xmm10, %xmm8 + subsd %xmm9, %xmm2 + addsd %xmm11, %xmm9 + addsd 4232+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm9, %xmm7 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm0 + addsd 4224+_vmldASinHATab(%rip), %xmm8 + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm5 + mulsd %xmm10, %xmm8 + subsd %xmm5, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm5 + movaps %xmm5, %xmm13 + addsd 4216+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm3, %xmm4 + addsd %xmm11, %xmm13 + mulsd %xmm10, %xmm8 + mulsd %xmm13, %xmm6 + addsd 4208+_vmldASinHATab(%rip), %xmm8 + addsd %xmm7, %xmm6 + mulsd %xmm10, %xmm8 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm7 + addsd 4200+_vmldASinHATab(%rip), %xmm8 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm1 + movsd 4184+_vmldASinHATab(%rip), %xmm10 + subsd %xmm4, %xmm1 + mulsd %xmm9, %xmm10 + addsd %xmm6, %xmm4 + movsd %xmm1, -56(%rsp) + movaps %xmm12, %xmm9 + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd 4176+_vmldASinHATab(%rip), %xmm1 + subsd %xmm2, %xmm0 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm11 + mulsd %xmm4, %xmm8 + addsd %xmm3, %xmm9 + mulsd %xmm1, %xmm5 + addsd %xmm11, %xmm10 + movsd %xmm0, -48(%rsp) + addsd %xmm10, %xmm8 + movsd -48(%rsp), %xmm7 + addsd %xmm5, %xmm8 + subsd %xmm7, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd %xmm9, -48(%rsp) + addsd %xmm2, %xmm6 + movsd -48(%rsp), %xmm11 + movsd 4192+_vmldASinHATab(%rip), %xmm4 + subsd %xmm11, %xmm12 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm6 + addsd %xmm12, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movaps %xmm3, %xmm12 + movsd -56(%rsp), %xmm7 + addsd %xmm0, %xmm12 + addsd %xmm7, %xmm8 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm12 + subsd %xmm12, %xmm3 + addsd %xmm3, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm9 + movsd -56(%rsp), %xmm0 + movb 3(%rdi), %dil + addsd %xmm0, %xmm8 + andb $-128, %dil + addsd %xmm8, %xmm9 + addsd %xmm9, %xmm6 + movsd %xmm6, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_6: + comisd 4128+_vmldASinHATab(%rip), %xmm12 + jb .LBL_2_8 + addsd %xmm0, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + mulsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + movb 3(%rdi), %dil + andb $127, %dl + andb $-128, %dil + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_8: + mulsd %xmm12, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + movb 3(%rdi), %dil + andb $-128, %dil + addsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_9: + movaps %xmm0, %xmm9 + movzwl 4166+_vmldASinHATab(%rip), %r9d + pxor %xmm15, %xmm15 + andl $-32753, %r9d + subsd %xmm12, %xmm9 + subsd %xmm0, %xmm15 + mulsd %xmm9, %xmm1 + movsd %xmm1, -32(%rsp) + movzwl -26(%rsp), %ecx + andl $32752, %ecx + shrl $4, %ecx + addl $-1023, %ecx + movl %ecx, %r8d + movl %ecx, %edx + negl %r8d + addl $1023, %r8d + andl $2047, %r8d + shll $4, %r8d + movsd %xmm0, -24(%rsp) + orl %r8d, %r9d + movw %r9w, -18(%rsp) + andl $1, %edx + movsd -24(%rsp), %xmm10 + movl %edx, %r10d + mulsd %xmm10, %xmm1 + lea _vmldASinHATab(%rip), %r8 + movaps %xmm1, %xmm6 + movsd 4112+_vmldASinHATab(%rip), %xmm7 + addsd %xmm1, %xmm6 + jne .LBL_73 + movaps %xmm1, %xmm6 + +.LBL_73: + mulsd %xmm6, %xmm7 + movaps %xmm6, %xmm8 + movaps %xmm7, %xmm11 + subl %edx, %ecx + movsd 4120+_vmldASinHATab(%rip), %xmm13 + subsd %xmm6, %xmm11 + addsd %xmm1, %xmm13 + movsd %xmm11, -56(%rsp) + movsd -56(%rsp), %xmm12 + movsd %xmm13, -16(%rsp) + subsd %xmm12, %xmm7 + movl -16(%rsp), %r11d + movaps %xmm7, %xmm4 + shll $8, %r10d + andl $511, %r11d + addl %r10d, %r11d + subsd %xmm7, %xmm8 + movsd (%r8,%r11,8), %xmm3 + addsd %xmm8, %xmm4 + mulsd %xmm3, %xmm7 + movaps %xmm3, %xmm14 + mulsd %xmm3, %xmm14 + mulsd %xmm14, %xmm4 + movsd 4496+_vmldASinHATab(%rip), %xmm5 + addsd %xmm15, %xmm4 + mulsd %xmm4, %xmm5 + shrl $1, %ecx + addsd 4488+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addl $1023, %ecx + andl $2047, %ecx + addsd 4480+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movzwl 4166+_vmldASinHATab(%rip), %r9d + shll $4, %ecx + andl $-32753, %r9d + movsd %xmm0, -8(%rsp) + orl %ecx, %r9d + movw %r9w, -2(%rsp) + movsd -8(%rsp), %xmm12 + mulsd %xmm12, %xmm7 + addsd 4472+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + mulsd %xmm7, %xmm1 + addsd 4464+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + movsd 4336+_vmldASinHATab(%rip), %xmm13 + subsd %xmm7, %xmm0 + addsd 4456+_vmldASinHATab(%rip), %xmm5 + addsd 4344+_vmldASinHATab(%rip), %xmm13 + mulsd %xmm4, %xmm5 + mulsd %xmm9, %xmm13 + addsd 4448+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + mulsd %xmm6, %xmm5 + movsd %xmm0, -56(%rsp) + addsd %xmm5, %xmm8 + movsd 4440+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm3, %xmm8 + addsd 4432+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm12, %xmm8 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm2 + movsd 4320+_vmldASinHATab(%rip), %xmm14 + subsd %xmm2, %xmm10 + addsd 4424+_vmldASinHATab(%rip), %xmm5 + addsd 4328+_vmldASinHATab(%rip), %xmm14 + mulsd %xmm9, %xmm5 + addsd %xmm13, %xmm14 + addsd 4416+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm14 + mulsd %xmm9, %xmm5 + movsd %xmm10, -48(%rsp) + movaps %xmm9, %xmm2 + movsd -48(%rsp), %xmm11 + movsd 4104+_vmldASinHATab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm9, %xmm3 + addsd 4408+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd 4304+_vmldASinHATab(%rip), %xmm4 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm7 + movsd %xmm3, -48(%rsp) + addsd %xmm7, %xmm8 + addsd 4400+_vmldASinHATab(%rip), %xmm5 + addsd 4312+_vmldASinHATab(%rip), %xmm4 + mulsd %xmm9, %xmm5 + addsd %xmm14, %xmm4 + addsd 4392+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm1 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm9, %xmm1 + addsd 4384+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd %xmm1, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + addsd 4376+_vmldASinHATab(%rip), %xmm5 + subsd %xmm15, %xmm0 + mulsd %xmm9, %xmm5 + movsd %xmm0, -48(%rsp) + movsd 4320+_vmldASinHATab(%rip), %xmm0 + addsd 4368+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4360+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4352+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + addsd %xmm5, %xmm4 + mulsd %xmm4, %xmm8 + movsd -48(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm4 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm13 + mulsd %xmm4, %xmm0 + addsd %xmm9, %xmm4 + mulsd %xmm13, %xmm7 + movsd -56(%rsp), %xmm3 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + mulsd %xmm3, %xmm4 + subsd %xmm13, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm1 + movsd 4304+_vmldASinHATab(%rip), %xmm10 + subsd %xmm1, %xmm11 + movsd %xmm11, -48(%rsp) + movaps %xmm0, %xmm1 + movsd -48(%rsp), %xmm12 + movsd 4304+_vmldASinHATab(%rip), %xmm11 + subsd %xmm12, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm7 + mulsd 4336+_vmldASinHATab(%rip), %xmm7 + movsd -56(%rsp), %xmm2 + addsd %xmm7, %xmm1 + addsd %xmm2, %xmm4 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd %xmm7, -16(%rsp) + subsd %xmm14, %xmm0 + mulsd 4336+_vmldASinHATab(%rip), %xmm4 + addsd %xmm0, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm12 + movsd -56(%rsp), %xmm1 + addsd %xmm12, %xmm10 + movsd %xmm10, -48(%rsp) + movsd -48(%rsp), %xmm15 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm15, %xmm11 + movsd 4320+_vmldASinHATab(%rip), %xmm2 + addsd %xmm11, %xmm12 + mulsd %xmm3, %xmm2 + movsd %xmm12, -56(%rsp) + movsd -48(%rsp), %xmm15 + mulsd %xmm15, %xmm7 + movsd -56(%rsp), %xmm0 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + movsd 4344+_vmldASinHATab(%rip), %xmm3 + subsd %xmm15, %xmm10 + mulsd %xmm9, %xmm3 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm13 + subsd %xmm13, %xmm11 + addsd 4328+_vmldASinHATab(%rip), %xmm3 + movsd %xmm11, -48(%rsp) + movsd -48(%rsp), %xmm14 + mulsd %xmm9, %xmm3 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm7 + addsd %xmm7, %xmm4 + addsd 4312+_vmldASinHATab(%rip), %xmm3 + addsd %xmm2, %xmm4 + addsd %xmm5, %xmm3 + addsd %xmm1, %xmm4 + addsd %xmm0, %xmm4 + movsd 4144+_vmldASinHATab(%rip), %xmm0 + addsd %xmm3, %xmm4 + mulsd %xmm6, %xmm4 + mulsd %xmm10, %xmm6 + addsd %xmm8, %xmm4 + movaps %xmm0, %xmm8 + subsd %xmm6, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm9 + subsd %xmm9, %xmm0 + subsd %xmm6, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + movb 3(%rdi), %dil + andb $-128, %dil + addsd 4152+_vmldASinHATab(%rip), %xmm1 + subsd %xmm4, %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm3 + cvtsd2ss %xmm3, %xmm3 + movss %xmm3, (%rsi) + ret + +.LBL_2_10: + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_12: + movss (%rdi), %xmm0 + divss %xmm0, %xmm0 + testl $8388607, (%rdi) + movss %xmm0, (%rsi) + sete %al + ret + + cfi_endproc + + .type __svml_sasin_cout_rare_internal,@function + .size __svml_sasin_cout_rare_internal,.-__svml_sasin_cout_rare_internal + + .section .rodata, "a" + .align 64 + +__svml_sasin_data_internal: + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0 + .long 0 + .long 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .type __svml_sasin_data_internal,@object + .size __svml_sasin_data_internal,1088 + .align 32 + +_vmldASinHATab: + .long 0 + .long 1072693248 + .long 0 + .long 1072689152 + .long 0 + .long 1072685056 + .long 0 + .long 1072680960 + .long 0 + .long 1072676864 + .long 0 + .long 1072672768 + .long 0 + .long 1072668672 + .long 0 + .long 1072665600 + .long 0 + .long 1072661504 + .long 0 + .long 1072657408 + .long 0 + .long 1072653312 + .long 0 + .long 1072649216 + .long 0 + .long 1072646144 + .long 0 + .long 1072642048 + .long 0 + .long 1072637952 + .long 0 + .long 1072634880 + .long 0 + .long 1072630784 + .long 0 + .long 1072626688 + .long 0 + .long 1072623616 + .long 0 + .long 1072619520 + .long 0 + .long 1072615424 + .long 0 + .long 1072612352 + .long 0 + .long 1072608256 + .long 0 + .long 1072605184 + .long 0 + .long 1072601088 + .long 0 + .long 1072598016 + .long 0 + .long 1072593920 + .long 0 + .long 1072590848 + .long 0 + .long 1072586752 + .long 0 + .long 1072583680 + .long 0 + .long 1072580608 + .long 0 + .long 1072576512 + .long 0 + .long 1072573440 + .long 0 + .long 1072570368 + .long 0 + .long 1072566272 + .long 0 + .long 1072563200 + .long 0 + .long 1072560128 + .long 0 + .long 1072556032 + .long 0 + .long 1072552960 + .long 0 + .long 1072549888 + .long 0 + .long 1072546816 + .long 0 + .long 1072542720 + .long 0 + .long 1072539648 + .long 0 + .long 1072536576 + .long 0 + .long 1072533504 + .long 0 + .long 1072530432 + .long 0 + .long 1072527360 + .long 0 + .long 1072523264 + .long 0 + .long 1072520192 + .long 0 + .long 1072517120 + .long 0 + .long 1072514048 + .long 0 + .long 1072510976 + .long 0 + .long 1072507904 + .long 0 + .long 1072504832 + .long 0 + .long 1072501760 + .long 0 + .long 1072498688 + .long 0 + .long 1072495616 + .long 0 + .long 1072492544 + .long 0 + .long 1072489472 + .long 0 + .long 1072486400 + .long 0 + .long 1072483328 + .long 0 + .long 1072480256 + .long 0 + .long 1072478208 + .long 0 + .long 1072475136 + .long 0 + .long 1072472064 + .long 0 + .long 1072468992 + .long 0 + .long 1072465920 + .long 0 + .long 1072462848 + .long 0 + .long 1072459776 + .long 0 + .long 1072457728 + .long 0 + .long 1072454656 + .long 0 + .long 1072451584 + .long 0 + .long 1072448512 + .long 0 + .long 1072446464 + .long 0 + .long 1072443392 + .long 0 + .long 1072440320 + .long 0 + .long 1072437248 + .long 0 + .long 1072435200 + .long 0 + .long 1072432128 + .long 0 + .long 1072429056 + .long 0 + .long 1072427008 + .long 0 + .long 1072423936 + .long 0 + .long 1072420864 + .long 0 + .long 1072418816 + .long 0 + .long 1072415744 + .long 0 + .long 1072412672 + .long 0 + .long 1072410624 + .long 0 + .long 1072407552 + .long 0 + .long 1072405504 + .long 0 + .long 1072402432 + .long 0 + .long 1072400384 + .long 0 + .long 1072397312 + .long 0 + .long 1072395264 + .long 0 + .long 1072392192 + .long 0 + .long 1072390144 + .long 0 + .long 1072387072 + .long 0 + .long 1072385024 + .long 0 + .long 1072381952 + .long 0 + .long 1072379904 + .long 0 + .long 1072376832 + .long 0 + .long 1072374784 + .long 0 + .long 1072371712 + .long 0 + .long 1072369664 + .long 0 + .long 1072366592 + .long 0 + .long 1072364544 + .long 0 + .long 1072362496 + .long 0 + .long 1072359424 + .long 0 + .long 1072357376 + .long 0 + .long 1072355328 + .long 0 + .long 1072352256 + .long 0 + .long 1072350208 + .long 0 + .long 1072347136 + .long 0 + .long 1072345088 + .long 0 + .long 1072343040 + .long 0 + .long 1072340992 + .long 0 + .long 1072337920 + .long 0 + .long 1072335872 + .long 0 + .long 1072333824 + .long 0 + .long 1072330752 + .long 0 + .long 1072328704 + .long 0 + .long 1072326656 + .long 0 + .long 1072324608 + .long 0 + .long 1072321536 + .long 0 + .long 1072319488 + .long 0 + .long 1072317440 + .long 0 + .long 1072315392 + .long 0 + .long 1072313344 + .long 0 + .long 1072310272 + .long 0 + .long 1072308224 + .long 0 + .long 1072306176 + .long 0 + .long 1072304128 + .long 0 + .long 1072302080 + .long 0 + .long 1072300032 + .long 0 + .long 1072296960 + .long 0 + .long 1072294912 + .long 0 + .long 1072292864 + .long 0 + .long 1072290816 + .long 0 + .long 1072288768 + .long 0 + .long 1072286720 + .long 0 + .long 1072284672 + .long 0 + .long 1072282624 + .long 0 + .long 1072280576 + .long 0 + .long 1072278528 + .long 0 + .long 1072275456 + .long 0 + .long 1072273408 + .long 0 + .long 1072271360 + .long 0 + .long 1072269312 + .long 0 + .long 1072267264 + .long 0 + .long 1072265216 + .long 0 + .long 1072263168 + .long 0 + .long 1072261120 + .long 0 + .long 1072259072 + .long 0 + .long 1072257024 + .long 0 + .long 1072254976 + .long 0 + .long 1072252928 + .long 0 + .long 1072250880 + .long 0 + .long 1072248832 + .long 0 + .long 1072246784 + .long 0 + .long 1072244736 + .long 0 + .long 1072243712 + .long 0 + .long 1072241664 + .long 0 + .long 1072239616 + .long 0 + .long 1072237568 + .long 0 + .long 1072235520 + .long 0 + .long 1072233472 + .long 0 + .long 1072231424 + .long 0 + .long 1072229376 + .long 0 + .long 1072227328 + .long 0 + .long 1072225280 + .long 0 + .long 1072223232 + .long 0 + .long 1072222208 + .long 0 + .long 1072220160 + .long 0 + .long 1072218112 + .long 0 + .long 1072216064 + .long 0 + .long 1072214016 + .long 0 + .long 1072211968 + .long 0 + .long 1072210944 + .long 0 + .long 1072208896 + .long 0 + .long 1072206848 + .long 0 + .long 1072204800 + .long 0 + .long 1072202752 + .long 0 + .long 1072201728 + .long 0 + .long 1072199680 + .long 0 + .long 1072197632 + .long 0 + .long 1072195584 + .long 0 + .long 1072193536 + .long 0 + .long 1072192512 + .long 0 + .long 1072190464 + .long 0 + .long 1072188416 + .long 0 + .long 1072186368 + .long 0 + .long 1072185344 + .long 0 + .long 1072183296 + .long 0 + .long 1072181248 + .long 0 + .long 1072179200 + .long 0 + .long 1072178176 + .long 0 + .long 1072176128 + .long 0 + .long 1072174080 + .long 0 + .long 1072173056 + .long 0 + .long 1072171008 + .long 0 + .long 1072168960 + .long 0 + .long 1072167936 + .long 0 + .long 1072165888 + .long 0 + .long 1072163840 + .long 0 + .long 1072161792 + .long 0 + .long 1072160768 + .long 0 + .long 1072158720 + .long 0 + .long 1072157696 + .long 0 + .long 1072155648 + .long 0 + .long 1072153600 + .long 0 + .long 1072152576 + .long 0 + .long 1072150528 + .long 0 + .long 1072148480 + .long 0 + .long 1072147456 + .long 0 + .long 1072145408 + .long 0 + .long 1072143360 + .long 0 + .long 1072142336 + .long 0 + .long 1072140288 + .long 0 + .long 1072139264 + .long 0 + .long 1072137216 + .long 0 + .long 1072135168 + .long 0 + .long 1072134144 + .long 0 + .long 1072132096 + .long 0 + .long 1072131072 + .long 0 + .long 1072129024 + .long 0 + .long 1072128000 + .long 0 + .long 1072125952 + .long 0 + .long 1072124928 + .long 0 + .long 1072122880 + .long 0 + .long 1072120832 + .long 0 + .long 1072119808 + .long 0 + .long 1072117760 + .long 0 + .long 1072116736 + .long 0 + .long 1072114688 + .long 0 + .long 1072113664 + .long 0 + .long 1072111616 + .long 0 + .long 1072110592 + .long 0 + .long 1072108544 + .long 0 + .long 1072107520 + .long 0 + .long 1072105472 + .long 0 + .long 1072104448 + .long 0 + .long 1072102400 + .long 0 + .long 1072101376 + .long 0 + .long 1072099328 + .long 0 + .long 1072098304 + .long 0 + .long 1072096256 + .long 0 + .long 1072095232 + .long 0 + .long 1072094208 + .long 0 + .long 1072092160 + .long 0 + .long 1072091136 + .long 0 + .long 1072089088 + .long 0 + .long 1072088064 + .long 0 + .long 1072086016 + .long 0 + .long 1072084992 + .long 0 + .long 1072082944 + .long 0 + .long 1072081920 + .long 0 + .long 1072080896 + .long 0 + .long 1072078848 + .long 0 + .long 1072075776 + .long 0 + .long 1072073728 + .long 0 + .long 1072070656 + .long 0 + .long 1072067584 + .long 0 + .long 1072064512 + .long 0 + .long 1072061440 + .long 0 + .long 1072059392 + .long 0 + .long 1072056320 + .long 0 + .long 1072053248 + .long 0 + .long 1072051200 + .long 0 + .long 1072048128 + .long 0 + .long 1072045056 + .long 0 + .long 1072043008 + .long 0 + .long 1072039936 + .long 0 + .long 1072037888 + .long 0 + .long 1072034816 + .long 0 + .long 1072031744 + .long 0 + .long 1072029696 + .long 0 + .long 1072026624 + .long 0 + .long 1072024576 + .long 0 + .long 1072021504 + .long 0 + .long 1072019456 + .long 0 + .long 1072016384 + .long 0 + .long 1072014336 + .long 0 + .long 1072011264 + .long 0 + .long 1072009216 + .long 0 + .long 1072006144 + .long 0 + .long 1072004096 + .long 0 + .long 1072002048 + .long 0 + .long 1071998976 + .long 0 + .long 1071996928 + .long 0 + .long 1071993856 + .long 0 + .long 1071991808 + .long 0 + .long 1071989760 + .long 0 + .long 1071986688 + .long 0 + .long 1071984640 + .long 0 + .long 1071982592 + .long 0 + .long 1071979520 + .long 0 + .long 1071977472 + .long 0 + .long 1071975424 + .long 0 + .long 1071972352 + .long 0 + .long 1071970304 + .long 0 + .long 1071968256 + .long 0 + .long 1071966208 + .long 0 + .long 1071964160 + .long 0 + .long 1071961088 + .long 0 + .long 1071959040 + .long 0 + .long 1071956992 + .long 0 + .long 1071954944 + .long 0 + .long 1071952896 + .long 0 + .long 1071949824 + .long 0 + .long 1071947776 + .long 0 + .long 1071945728 + .long 0 + .long 1071943680 + .long 0 + .long 1071941632 + .long 0 + .long 1071939584 + .long 0 + .long 1071937536 + .long 0 + .long 1071935488 + .long 0 + .long 1071933440 + .long 0 + .long 1071930368 + .long 0 + .long 1071928320 + .long 0 + .long 1071926272 + .long 0 + .long 1071924224 + .long 0 + .long 1071922176 + .long 0 + .long 1071920128 + .long 0 + .long 1071918080 + .long 0 + .long 1071916032 + .long 0 + .long 1071913984 + .long 0 + .long 1071911936 + .long 0 + .long 1071909888 + .long 0 + .long 1071907840 + .long 0 + .long 1071905792 + .long 0 + .long 1071903744 + .long 0 + .long 1071901696 + .long 0 + .long 1071900672 + .long 0 + .long 1071898624 + .long 0 + .long 1071896576 + .long 0 + .long 1071894528 + .long 0 + .long 1071892480 + .long 0 + .long 1071890432 + .long 0 + .long 1071888384 + .long 0 + .long 1071886336 + .long 0 + .long 1071884288 + .long 0 + .long 1071883264 + .long 0 + .long 1071881216 + .long 0 + .long 1071879168 + .long 0 + .long 1071877120 + .long 0 + .long 1071875072 + .long 0 + .long 1071873024 + .long 0 + .long 1071872000 + .long 0 + .long 1071869952 + .long 0 + .long 1071867904 + .long 0 + .long 1071865856 + .long 0 + .long 1071864832 + .long 0 + .long 1071862784 + .long 0 + .long 1071860736 + .long 0 + .long 1071858688 + .long 0 + .long 1071856640 + .long 0 + .long 1071855616 + .long 0 + .long 1071853568 + .long 0 + .long 1071851520 + .long 0 + .long 1071850496 + .long 0 + .long 1071848448 + .long 0 + .long 1071846400 + .long 0 + .long 1071844352 + .long 0 + .long 1071843328 + .long 0 + .long 1071841280 + .long 0 + .long 1071839232 + .long 0 + .long 1071838208 + .long 0 + .long 1071836160 + .long 0 + .long 1071834112 + .long 0 + .long 1071833088 + .long 0 + .long 1071831040 + .long 0 + .long 1071830016 + .long 0 + .long 1071827968 + .long 0 + .long 1071825920 + .long 0 + .long 1071824896 + .long 0 + .long 1071822848 + .long 0 + .long 1071821824 + .long 0 + .long 1071819776 + .long 0 + .long 1071817728 + .long 0 + .long 1071816704 + .long 0 + .long 1071814656 + .long 0 + .long 1071813632 + .long 0 + .long 1071811584 + .long 0 + .long 1071810560 + .long 0 + .long 1071808512 + .long 0 + .long 1071806464 + .long 0 + .long 1071805440 + .long 0 + .long 1071803392 + .long 0 + .long 1071802368 + .long 0 + .long 1071800320 + .long 0 + .long 1071799296 + .long 0 + .long 1071797248 + .long 0 + .long 1071796224 + .long 0 + .long 1071794176 + .long 0 + .long 1071793152 + .long 0 + .long 1071791104 + .long 0 + .long 1071790080 + .long 0 + .long 1071788032 + .long 0 + .long 1071787008 + .long 0 + .long 1071784960 + .long 0 + .long 1071783936 + .long 0 + .long 1071782912 + .long 0 + .long 1071780864 + .long 0 + .long 1071779840 + .long 0 + .long 1071777792 + .long 0 + .long 1071776768 + .long 0 + .long 1071774720 + .long 0 + .long 1071773696 + .long 0 + .long 1071772672 + .long 0 + .long 1071770624 + .long 0 + .long 1071769600 + .long 0 + .long 1071767552 + .long 0 + .long 1071766528 + .long 0 + .long 1071765504 + .long 0 + .long 1071763456 + .long 0 + .long 1071762432 + .long 0 + .long 1071760384 + .long 0 + .long 1071759360 + .long 0 + .long 1071758336 + .long 0 + .long 1071756288 + .long 0 + .long 1071755264 + .long 0 + .long 1071754240 + .long 0 + .long 1071752192 + .long 0 + .long 1071751168 + .long 0 + .long 1071750144 + .long 0 + .long 1071748096 + .long 0 + .long 1071747072 + .long 0 + .long 1071746048 + .long 0 + .long 1071744000 + .long 0 + .long 1071742976 + .long 0 + .long 1071741952 + .long 0 + .long 1071739904 + .long 0 + .long 1071738880 + .long 0 + .long 1071737856 + .long 0 + .long 1071736832 + .long 0 + .long 1071734784 + .long 0 + .long 1071733760 + .long 0 + .long 1071732736 + .long 0 + .long 1071730688 + .long 0 + .long 1071729664 + .long 0 + .long 1071728640 + .long 0 + .long 1071727616 + .long 0 + .long 1071725568 + .long 0 + .long 1071724544 + .long 0 + .long 1071723520 + .long 0 + .long 1071722496 + .long 0 + .long 1071720448 + .long 0 + .long 1071719424 + .long 0 + .long 1071718400 + .long 0 + .long 1071717376 + .long 0 + .long 1071715328 + .long 0 + .long 1071714304 + .long 0 + .long 1071713280 + .long 0 + .long 1071712256 + .long 0 + .long 1071711232 + .long 0 + .long 1071709184 + .long 0 + .long 1071708160 + .long 0 + .long 1071707136 + .long 0 + .long 1071706112 + .long 0 + .long 1071705088 + .long 0 + .long 1071704064 + .long 0 + .long 1071702016 + .long 0 + .long 1071700992 + .long 0 + .long 1071699968 + .long 0 + .long 1071698944 + .long 0 + .long 1071697920 + .long 0 + .long 1071696896 + .long 0 + .long 1071694848 + .long 0 + .long 1071693824 + .long 0 + .long 1071692800 + .long 0 + .long 1071691776 + .long 0 + .long 1071690752 + .long 0 + .long 1071689728 + .long 0 + .long 1071688704 + .long 0 + .long 1071686656 + .long 0 + .long 1071685632 + .long 0 + .long 1071684608 + .long 0 + .long 1071683584 + .long 0 + .long 1071682560 + .long 0 + .long 1071681536 + .long 0 + .long 1071680512 + .long 0 + .long 1071679488 + .long 0 + .long 1071677440 + .long 0 + .long 1071676416 + .long 0 + .long 1071675392 + .long 0 + .long 1071674368 + .long 0 + .long 1071673344 + .long 0 + .long 1071672320 + .long 0 + .long 1071671296 + .long 0 + .long 1071670272 + .long 0 + .long 1071669248 + .long 0 + .long 1071668224 + .long 0 + .long 1071667200 + .long 0 + .long 1071666176 + .long 0 + .long 1071665152 + .long 0 + .long 1071663104 + .long 0 + .long 1071662080 + .long 0 + .long 1071661056 + .long 0 + .long 1071660032 + .long 0 + .long 1071659008 + .long 0 + .long 1071657984 + .long 0 + .long 1071656960 + .long 0 + .long 1071655936 + .long 0 + .long 1071654912 + .long 0 + .long 1071653888 + .long 0 + .long 1071652864 + .long 0 + .long 1071651840 + .long 0 + .long 1071650816 + .long 0 + .long 1071649792 + .long 0 + .long 1071648768 + .long 0 + .long 1071647744 + .long 0 + .long 1071646720 + .long 0 + .long 1071645696 + .long 0 + .long 1071644672 + .long 0 + .long 1101004800 + .long 1073741824 + .long 1095761920 + .long 256 + .long 1118830592 + .long 0 + .long 1048576 + .long 0 + .long 1017118720 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 0 + .long 1072693248 + .long 0 + .long 1071644672 + .long 1476395008 + .long 1069897045 + .long 1768958041 + .long 3189069141 + .long 805306368 + .long 1068708659 + .long 3580333578 + .long 1040816593 + .long 3067382784 + .long 1067899757 + .long 3397590151 + .long 1067392113 + .long 2939529726 + .long 1066854585 + .long 1423429166 + .long 1066517752 + .long 1775218934 + .long 1066178574 + .long 1185392460 + .long 1065859647 + .long 289998670 + .long 1065577550 + .long 3179807072 + .long 1065648121 + .long 3781007284 + .long 1061576176 + .long 2482106687 + .long 1067019199 + .long 763519713 + .long 3214591591 + .long 3695107454 + .long 1067530646 + .long 0 + .long 1073741824 + .long 1124791109 + .long 1006764147 + .long 1476395008 + .long 1069897045 + .long 1953913876 + .long 3189069141 + .long 805306368 + .long 1067660083 + .long 165110192 + .long 1039768033 + .long 3067304082 + .long 1065802605 + .long 3404727379 + .long 1064246385 + .long 2737480376 + .long 1062660281 + .long 933797922 + .long 1061274873 + .long 1475716730 + .long 1059887095 + .long 1511619763 + .long 1058519827 + .long 556024211 + .long 1057187555 + .long 3482101045 + .long 1056217350 + .long 1174622859 + .long 1050762633 + .long 899668651 + .long 1055506366 + .long 1081094694 + .long 3202035365 + .long 2559814773 + .long 1053906576 + .long 0 + .long 3219128320 + .long 0 + .long 1071120384 + .long 0 + .long 3218341888 + .long 0 + .long 1070694400 + .long 0 + .long 3218046976 + .long 0 + .long 1070391296 + .long 0 + .long 3217739776 + .type _vmldASinHATab,@object + .size _vmldASinHATab,4504 diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S new file mode 100644 index 0000000000..6273c919d6 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core-sse.S @@ -0,0 +1,20 @@ +/* SSE version of vectorized asinf, vector length is 8. + Copyright (C) 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 + . */ + +#define _ZGVdN8v_asinf _ZGVdN8v_asinf_sse_wrapper +#include "../svml_s_asinf8_core.S" diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c new file mode 100644 index 0000000000..946b25b43f --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core.c @@ -0,0 +1,28 @@ +/* Multiple versions of vectorized asinf, vector length is 8. + Copyright (C) 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 + . */ + +#define SYMBOL_NAME _ZGVdN8v_asinf +#include "ifunc-mathvec-avx2.h" + +libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ()); + +#ifdef SHARED +__hidden_ver1 (_ZGVdN8v_asinf, __GI__ZGVdN8v_asinf, + __redirect__ZGVdN8v_asinf) + __attribute__ ((visibility ("hidden"))); +#endif diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S new file mode 100644 index 0000000000..3bb057b3a3 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_asinf8_core_avx2.S @@ -0,0 +1,2483 @@ +/* Function asinf vectorized with AVX2. + Copyright (C) 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 + https://www.gnu.org/licenses/. */ + +/* + * ALGORITHM DESCRIPTION: + * + * SelMask = (|x| >= 0.5) ? 1 : 0; + * R = SelMask ? sqrt(0.5 - 0.5*|x|) : |x| + * asin(x) = (SelMask ? (Pi/2 - 2*Poly(R)) : Poly(R))*(-1)^sign(x) + * + * + */ + +#include + + .text +ENTRY(_ZGVdN8v_asinf_avx2) + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-64, %rsp + subq $384, %rsp + vmovups __svml_sasin_data_internal(%rip), %ymm5 + vmovups %ymm8, 256(%rsp) + .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22 + vmovups 64+__svml_sasin_data_internal(%rip), %ymm8 + vmovups 256+__svml_sasin_data_internal(%rip), %ymm6 + vmovups %ymm9, 32(%rsp) + vmovups %ymm10, 96(%rsp) + vmovups %ymm11, 160(%rsp) + vmovups %ymm13, 224(%rsp) + vmovups %ymm15, 320(%rsp) + vmovups %ymm12, 192(%rsp) + .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 + vmovups 640+__svml_sasin_data_internal(%rip), %ymm15 + vmovups %ymm14, 288(%rsp) + vmovaps %ymm0, %ymm4 + +/* x = |arg| */ + vandps %ymm4, %ymm5, %ymm3 + vcmplt_oqps %ymm3, %ymm6, %ymm0 + +/* x^2 */ + vmulps %ymm3, %ymm3, %ymm7 + +/* Y = 0.5 - 0.5*x */ + vmovaps %ymm8, %ymm6 + vfnmadd231ps %ymm3, %ymm8, %ymm6 + vandnps %ymm4, %ymm5, %ymm2 + +/* SQ ~ -2*sqrt(Y) */ + vrsqrtps %ymm6, %ymm5 + vminps %ymm6, %ymm7, %ymm1 + vcmplt_oqps 192+__svml_sasin_data_internal(%rip), %ymm6, %ymm7 + .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22 + vaddps %ymm6, %ymm6, %ymm11 + vfmadd213ps 672+__svml_sasin_data_internal(%rip), %ymm1, %ymm15 + vmulps %ymm1, %ymm1, %ymm14 + vandnps %ymm5, %ymm7, %ymm9 + vmulps %ymm9, %ymm9, %ymm10 + vmulps %ymm11, %ymm9, %ymm13 + vmovups 512+__svml_sasin_data_internal(%rip), %ymm5 + vfmsub213ps 448+__svml_sasin_data_internal(%rip), %ymm10, %ymm11 + vfmadd213ps 544+__svml_sasin_data_internal(%rip), %ymm11, %ymm5 + vmulps %ymm11, %ymm13, %ymm12 + +/* polynomial */ + vmovups 576+__svml_sasin_data_internal(%rip), %ymm11 + vfmsub213ps %ymm13, %ymm12, %ymm5 + vfmadd213ps 608+__svml_sasin_data_internal(%rip), %ymm1, %ymm11 + vfmadd213ps %ymm15, %ymm14, %ymm11 + vfmadd213ps 704+__svml_sasin_data_internal(%rip), %ymm1, %ymm11 + vmovmskps %ymm0, %edx + vcmpnlt_uqps %ymm8, %ymm3, %ymm0 + vmulps %ymm11, %ymm1, %ymm6 + vblendvps %ymm0, %ymm5, %ymm3, %ymm3 + vfmadd213ps %ymm3, %ymm3, %ymm6 + vandps 768+__svml_sasin_data_internal(%rip), %ymm0, %ymm1 + vaddps %ymm6, %ymm1, %ymm0 + vxorps %ymm2, %ymm0, %ymm0 + testl %edx, %edx + jne .LBL_1_3 + +.LBL_1_2: + vmovups 256(%rsp), %ymm8 + cfi_restore(91) + vmovups 32(%rsp), %ymm9 + cfi_restore(92) + vmovups 96(%rsp), %ymm10 + cfi_restore(93) + vmovups 160(%rsp), %ymm11 + cfi_restore(94) + vmovups 192(%rsp), %ymm12 + cfi_restore(95) + vmovups 224(%rsp), %ymm13 + cfi_restore(96) + vmovups 288(%rsp), %ymm14 + cfi_restore(97) + vmovups 320(%rsp), %ymm15 + cfi_restore(98) + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 + +.LBL_1_3: + vmovups %ymm4, 64(%rsp) + vmovups %ymm0, 128(%rsp) + je .LBL_1_2 + xorl %eax, %eax + vzeroupper + movq %rsi, 8(%rsp) + movq %rdi, (%rsp) + movq %r12, 24(%rsp) + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 16(%rsp) + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22 + movl %edx, %r13d + +.LBL_1_7: + btl %r12d, %r13d + jc .LBL_1_10 + +.LBL_1_8: + incl %r12d + cmpl $8, %r12d + jl .LBL_1_7 + movq 8(%rsp), %rsi + cfi_restore(4) + movq (%rsp), %rdi + cfi_restore(5) + movq 24(%rsp), %r12 + cfi_restore(12) + movq 16(%rsp), %r13 + cfi_restore(13) + vmovups 128(%rsp), %ymm0 + jmp .LBL_1_2 + .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22 + +.LBL_1_10: + lea 64(%rsp,%r12,4), %rdi + lea 128(%rsp,%r12,4), %rsi + call __svml_sasin_cout_rare_internal + jmp .LBL_1_8 + +END(_ZGVdN8v_asinf_avx2) + + .align 16,0x90 + +__svml_sasin_cout_rare_internal: + + cfi_startproc + + xorl %eax, %eax + movzwl 2(%rdi), %edx + andl $32640, %edx + cmpl $32640, %edx + je .LBL_2_12 + pxor %xmm0, %xmm0 + cvtss2sd (%rdi), %xmm0 + movsd %xmm0, -32(%rsp) + andb $127, -25(%rsp) + movsd -32(%rsp), %xmm12 + movsd 4160+_vmldASinHATab(%rip), %xmm0 + comisd %xmm12, %xmm0 + jb .LBL_2_10 + movsd 4168+_vmldASinHATab(%rip), %xmm1 + comisd %xmm12, %xmm1 + jbe .LBL_2_9 + comisd 4136+_vmldASinHATab(%rip), %xmm12 + jbe .LBL_2_6 + movsd 4104+_vmldASinHATab(%rip), %xmm13 + movaps %xmm12, %xmm5 + mulsd %xmm12, %xmm13 + movaps %xmm12, %xmm7 + movsd %xmm13, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd -32(%rsp), %xmm14 + movsd %xmm14, -56(%rsp) + movsd -48(%rsp), %xmm8 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm6 + movsd 4296+_vmldASinHATab(%rip), %xmm8 + subsd %xmm6, %xmm5 + movsd %xmm5, -56(%rsp) + movaps %xmm12, %xmm5 + movsd -48(%rsp), %xmm9 + movaps %xmm9, %xmm13 + addsd %xmm9, %xmm7 + mulsd %xmm9, %xmm13 + movsd -56(%rsp), %xmm11 + movaps %xmm13, %xmm10 + mulsd %xmm11, %xmm7 + mulsd %xmm13, %xmm1 + addsd %xmm7, %xmm10 + mulsd %xmm10, %xmm8 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm2 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + subsd %xmm13, %xmm2 + addsd 4288+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm0 + addsd 4280+_vmldASinHATab(%rip), %xmm8 + subsd %xmm0, %xmm3 + mulsd %xmm10, %xmm8 + movsd %xmm3, -48(%rsp) + movsd -48(%rsp), %xmm4 + addsd 4272+_vmldASinHATab(%rip), %xmm8 + subsd %xmm4, %xmm13 + mulsd %xmm10, %xmm8 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm6 + mulsd %xmm6, %xmm9 + addsd 4264+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm6, %xmm11 + mulsd %xmm10, %xmm8 + mulsd %xmm9, %xmm1 + addsd 4256+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm10, %xmm8 + movaps %xmm9, %xmm3 + movsd -56(%rsp), %xmm14 + movaps %xmm6, %xmm4 + movsd %xmm1, -48(%rsp) + addsd %xmm14, %xmm7 + addsd 4248+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm7, %xmm5 + mulsd %xmm10, %xmm8 + addsd %xmm5, %xmm11 + addsd 4240+_vmldASinHATab(%rip), %xmm8 + movsd -48(%rsp), %xmm2 + mulsd %xmm10, %xmm8 + subsd %xmm9, %xmm2 + addsd %xmm11, %xmm9 + addsd 4232+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm9, %xmm7 + mulsd %xmm10, %xmm8 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + subsd %xmm15, %xmm0 + addsd 4224+_vmldASinHATab(%rip), %xmm8 + movsd %xmm0, -48(%rsp) + movsd -48(%rsp), %xmm5 + mulsd %xmm10, %xmm8 + subsd %xmm5, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movsd -56(%rsp), %xmm5 + movaps %xmm5, %xmm13 + addsd 4216+_vmldASinHATab(%rip), %xmm8 + mulsd %xmm3, %xmm4 + addsd %xmm11, %xmm13 + mulsd %xmm10, %xmm8 + mulsd %xmm13, %xmm6 + addsd 4208+_vmldASinHATab(%rip), %xmm8 + addsd %xmm7, %xmm6 + mulsd %xmm10, %xmm8 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm7 + addsd 4200+_vmldASinHATab(%rip), %xmm8 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm1 + movsd 4184+_vmldASinHATab(%rip), %xmm10 + subsd %xmm4, %xmm1 + mulsd %xmm9, %xmm10 + addsd %xmm6, %xmm4 + movsd %xmm1, -56(%rsp) + movaps %xmm12, %xmm9 + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd 4176+_vmldASinHATab(%rip), %xmm1 + subsd %xmm2, %xmm0 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm11 + mulsd %xmm4, %xmm8 + addsd %xmm3, %xmm9 + mulsd %xmm1, %xmm5 + addsd %xmm11, %xmm10 + movsd %xmm0, -48(%rsp) + addsd %xmm10, %xmm8 + movsd -48(%rsp), %xmm7 + addsd %xmm5, %xmm8 + subsd %xmm7, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm2 + movsd %xmm9, -48(%rsp) + addsd %xmm2, %xmm6 + movsd -48(%rsp), %xmm11 + movsd 4192+_vmldASinHATab(%rip), %xmm4 + subsd %xmm11, %xmm12 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm6 + addsd %xmm12, %xmm3 + movsd %xmm3, -56(%rsp) + movsd -48(%rsp), %xmm3 + movaps %xmm3, %xmm12 + movsd -56(%rsp), %xmm7 + addsd %xmm0, %xmm12 + addsd %xmm7, %xmm8 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm12 + subsd %xmm12, %xmm3 + addsd %xmm3, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm9 + movsd -56(%rsp), %xmm0 + movb 3(%rdi), %dil + addsd %xmm0, %xmm8 + andb $-128, %dil + addsd %xmm8, %xmm9 + addsd %xmm9, %xmm6 + movsd %xmm6, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_6: + comisd 4128+_vmldASinHATab(%rip), %xmm12 + jb .LBL_2_8 + addsd %xmm0, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + mulsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + movb 3(%rdi), %dil + andb $127, %dl + andb $-128, %dil + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_8: + mulsd %xmm12, %xmm12 + movsd %xmm12, -48(%rsp) + movsd -48(%rsp), %xmm0 + movb 3(%rdi), %dil + andb $-128, %dil + addsd -32(%rsp), %xmm0 + movsd %xmm0, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm1 + cvtsd2ss %xmm1, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_9: + movaps %xmm0, %xmm9 + movzwl 4166+_vmldASinHATab(%rip), %r9d + pxor %xmm15, %xmm15 + andl $-32753, %r9d + subsd %xmm12, %xmm9 + subsd %xmm0, %xmm15 + mulsd %xmm9, %xmm1 + movsd %xmm1, -32(%rsp) + movzwl -26(%rsp), %ecx + andl $32752, %ecx + shrl $4, %ecx + addl $-1023, %ecx + movl %ecx, %r8d + movl %ecx, %edx + negl %r8d + addl $1023, %r8d + andl $2047, %r8d + shll $4, %r8d + movsd %xmm0, -24(%rsp) + orl %r8d, %r9d + movw %r9w, -18(%rsp) + andl $1, %edx + movsd -24(%rsp), %xmm10 + movl %edx, %r10d + mulsd %xmm10, %xmm1 + lea _vmldASinHATab(%rip), %r8 + movaps %xmm1, %xmm6 + movsd 4112+_vmldASinHATab(%rip), %xmm7 + addsd %xmm1, %xmm6 + jne .LBL_73 + movaps %xmm1, %xmm6 + +.LBL_73: + mulsd %xmm6, %xmm7 + movaps %xmm6, %xmm8 + movaps %xmm7, %xmm11 + subl %edx, %ecx + movsd 4120+_vmldASinHATab(%rip), %xmm13 + subsd %xmm6, %xmm11 + addsd %xmm1, %xmm13 + movsd %xmm11, -56(%rsp) + movsd -56(%rsp), %xmm12 + movsd %xmm13, -16(%rsp) + subsd %xmm12, %xmm7 + movl -16(%rsp), %r11d + movaps %xmm7, %xmm4 + shll $8, %r10d + andl $511, %r11d + addl %r10d, %r11d + subsd %xmm7, %xmm8 + movsd (%r8,%r11,8), %xmm3 + addsd %xmm8, %xmm4 + mulsd %xmm3, %xmm7 + movaps %xmm3, %xmm14 + mulsd %xmm3, %xmm14 + mulsd %xmm14, %xmm4 + movsd 4496+_vmldASinHATab(%rip), %xmm5 + addsd %xmm15, %xmm4 + mulsd %xmm4, %xmm5 + shrl $1, %ecx + addsd 4488+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + addl $1023, %ecx + andl $2047, %ecx + addsd 4480+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movzwl 4166+_vmldASinHATab(%rip), %r9d + shll $4, %ecx + andl $-32753, %r9d + movsd %xmm0, -8(%rsp) + orl %ecx, %r9d + movw %r9w, -2(%rsp) + movsd -8(%rsp), %xmm12 + mulsd %xmm12, %xmm7 + addsd 4472+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd 4104+_vmldASinHATab(%rip), %xmm1 + mulsd %xmm7, %xmm1 + addsd 4464+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm0 + movsd 4336+_vmldASinHATab(%rip), %xmm13 + subsd %xmm7, %xmm0 + addsd 4456+_vmldASinHATab(%rip), %xmm5 + addsd 4344+_vmldASinHATab(%rip), %xmm13 + mulsd %xmm4, %xmm5 + mulsd %xmm9, %xmm13 + addsd 4448+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm4, %xmm5 + mulsd %xmm6, %xmm5 + movsd %xmm0, -56(%rsp) + addsd %xmm5, %xmm8 + movsd 4440+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm3, %xmm8 + addsd 4432+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm12, %xmm8 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm2 + movsd 4320+_vmldASinHATab(%rip), %xmm14 + subsd %xmm2, %xmm10 + addsd 4424+_vmldASinHATab(%rip), %xmm5 + addsd 4328+_vmldASinHATab(%rip), %xmm14 + mulsd %xmm9, %xmm5 + addsd %xmm13, %xmm14 + addsd 4416+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm14 + mulsd %xmm9, %xmm5 + movsd %xmm10, -48(%rsp) + movaps %xmm9, %xmm2 + movsd -48(%rsp), %xmm11 + movsd 4104+_vmldASinHATab(%rip), %xmm3 + subsd %xmm11, %xmm7 + mulsd %xmm9, %xmm3 + addsd 4408+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd 4304+_vmldASinHATab(%rip), %xmm4 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm6 + movsd -56(%rsp), %xmm7 + movsd %xmm3, -48(%rsp) + addsd %xmm7, %xmm8 + addsd 4400+_vmldASinHATab(%rip), %xmm5 + addsd 4312+_vmldASinHATab(%rip), %xmm4 + mulsd %xmm9, %xmm5 + addsd %xmm14, %xmm4 + addsd 4392+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd -48(%rsp), %xmm1 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm9, %xmm1 + addsd 4384+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + movsd %xmm1, -56(%rsp) + movsd -48(%rsp), %xmm0 + movsd -56(%rsp), %xmm15 + addsd 4376+_vmldASinHATab(%rip), %xmm5 + subsd %xmm15, %xmm0 + mulsd %xmm9, %xmm5 + movsd %xmm0, -48(%rsp) + movsd 4320+_vmldASinHATab(%rip), %xmm0 + addsd 4368+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4360+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + addsd 4352+_vmldASinHATab(%rip), %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + mulsd %xmm9, %xmm5 + addsd %xmm5, %xmm4 + mulsd %xmm4, %xmm8 + movsd -48(%rsp), %xmm4 + subsd %xmm4, %xmm2 + movsd %xmm2, -56(%rsp) + movsd -48(%rsp), %xmm4 + movaps %xmm4, %xmm13 + mulsd %xmm4, %xmm13 + mulsd %xmm4, %xmm0 + addsd %xmm9, %xmm4 + mulsd %xmm13, %xmm7 + movsd -56(%rsp), %xmm3 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + mulsd %xmm3, %xmm4 + subsd %xmm13, %xmm10 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm1 + movsd 4304+_vmldASinHATab(%rip), %xmm10 + subsd %xmm1, %xmm11 + movsd %xmm11, -48(%rsp) + movaps %xmm0, %xmm1 + movsd -48(%rsp), %xmm12 + movsd 4304+_vmldASinHATab(%rip), %xmm11 + subsd %xmm12, %xmm13 + movsd %xmm13, -56(%rsp) + movsd -48(%rsp), %xmm7 + mulsd 4336+_vmldASinHATab(%rip), %xmm7 + movsd -56(%rsp), %xmm2 + addsd %xmm7, %xmm1 + addsd %xmm2, %xmm4 + movsd %xmm1, -48(%rsp) + movsd -48(%rsp), %xmm14 + movsd %xmm7, -16(%rsp) + subsd %xmm14, %xmm0 + mulsd 4336+_vmldASinHATab(%rip), %xmm4 + addsd %xmm0, %xmm7 + movsd %xmm7, -56(%rsp) + movsd -48(%rsp), %xmm12 + movsd -56(%rsp), %xmm1 + addsd %xmm12, %xmm10 + movsd %xmm10, -48(%rsp) + movsd -48(%rsp), %xmm15 + movsd 4104+_vmldASinHATab(%rip), %xmm7 + subsd %xmm15, %xmm11 + movsd 4320+_vmldASinHATab(%rip), %xmm2 + addsd %xmm11, %xmm12 + mulsd %xmm3, %xmm2 + movsd %xmm12, -56(%rsp) + movsd -48(%rsp), %xmm15 + mulsd %xmm15, %xmm7 + movsd -56(%rsp), %xmm0 + movsd %xmm7, -48(%rsp) + movsd -48(%rsp), %xmm10 + movsd 4344+_vmldASinHATab(%rip), %xmm3 + subsd %xmm15, %xmm10 + mulsd %xmm9, %xmm3 + movsd %xmm10, -56(%rsp) + movsd -48(%rsp), %xmm11 + movsd -56(%rsp), %xmm13 + subsd %xmm13, %xmm11 + addsd 4328+_vmldASinHATab(%rip), %xmm3 + movsd %xmm11, -48(%rsp) + movsd -48(%rsp), %xmm14 + mulsd %xmm9, %xmm3 + subsd %xmm14, %xmm15 + movsd %xmm15, -56(%rsp) + movsd -48(%rsp), %xmm10 + movsd -56(%rsp), %xmm7 + addsd %xmm7, %xmm4 + addsd 4312+_vmldASinHATab(%rip), %xmm3 + addsd %xmm2, %xmm4 + addsd %xmm5, %xmm3 + addsd %xmm1, %xmm4 + addsd %xmm0, %xmm4 + movsd 4144+_vmldASinHATab(%rip), %xmm0 + addsd %xmm3, %xmm4 + mulsd %xmm6, %xmm4 + mulsd %xmm10, %xmm6 + addsd %xmm8, %xmm4 + movaps %xmm0, %xmm8 + subsd %xmm6, %xmm8 + movsd %xmm8, -48(%rsp) + movsd -48(%rsp), %xmm9 + subsd %xmm9, %xmm0 + subsd %xmm6, %xmm0 + movsd %xmm0, -56(%rsp) + movsd -48(%rsp), %xmm2 + movsd -56(%rsp), %xmm1 + movb 3(%rdi), %dil + andb $-128, %dil + addsd 4152+_vmldASinHATab(%rip), %xmm1 + subsd %xmm4, %xmm1 + addsd %xmm1, %xmm2 + movsd %xmm2, -40(%rsp) + movb -33(%rsp), %dl + andb $127, %dl + orb %dil, %dl + movb %dl, -33(%rsp) + movsd -40(%rsp), %xmm3 + cvtsd2ss %xmm3, %xmm3 + movss %xmm3, (%rsi) + ret + +.LBL_2_10: + movl $1, %eax + pxor %xmm1, %xmm1 + pxor %xmm0, %xmm0 + divss %xmm0, %xmm1 + movss %xmm1, (%rsi) + ret + +.LBL_2_12: + movss (%rdi), %xmm0 + divss %xmm0, %xmm0 + testl $8388607, (%rdi) + movss %xmm0, (%rsi) + sete %al + ret + + cfi_endproc + + .type __svml_sasin_cout_rare_internal,@function + .size __svml_sasin_cout_rare_internal,.-__svml_sasin_cout_rare_internal + + .section .rodata, "a" + .align 64 + +__svml_sasin_data_internal: + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .long 2147483647 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .long 1056964608 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .long 4294963200 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .long 796917760 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .long 1065353216 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .long 4294959104 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .long 4294965248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .long 1073741824 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 3183476740 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1048576001 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1026481159 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1019423339 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1027250868 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1033468946 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .long 1042983679 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .long 1070141403 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .long 3007036718 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .long 2147483648 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .long 4290772992 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1036306094 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 1042839218 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .long 939876771 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .type __svml_sasin_data_internal,@object + .size __svml_sasin_data_internal,1216 + .align 32 + +_vmldASinHATab: + .long 0 + .long 1072693248 + .long 0 + .long 1072689152 + .long 0 + .long 1072685056 + .long 0 + .long 1072680960 + .long 0 + .long 1072676864 + .long 0 + .long 1072672768 + .long 0 + .long 1072668672 + .long 0 + .long 1072665600 + .long 0 + .long 1072661504 + .long 0 + .long 1072657408 + .long 0 + .long 1072653312 + .long 0 + .long 1072649216 + .long 0 + .long 1072646144 + .long 0 + .long 1072642048 + .long 0 + .long 1072637952 + .long 0 + .long 1072634880 + .long 0 + .long 1072630784 + .long 0 + .long 1072626688 + .long 0 + .long 1072623616 + .long 0 + .long 1072619520 + .long 0 + .long 1072615424 + .long 0 + .long 1072612352 + .long 0 + .long 1072608256 + .long 0 + .long 1072605184 + .long 0 + .long 1072601088 + .long 0 + .long 1072598016 + .long 0 + .long 1072593920 + .long 0 + .long 1072590848 + .long 0 + .long 1072586752 + .long 0 + .long 1072583680 + .long 0 + .long 1072580608 + .long 0 + .long 1072576512 + .long 0 + .long 1072573440 + .long 0 + .long 1072570368 + .long 0 + .long 1072566272 + .long 0 + .long 1072563200 + .long 0 + .long 1072560128 + .long 0 + .long 1072556032 + .long 0 + .long 1072552960 + .long 0 + .long 1072549888 + .long 0 + .long 1072546816 + .long 0 + .long 1072542720 + .long 0 + .long 1072539648 + .long 0 + .long 1072536576 + .long 0 + .long 1072533504 + .long 0 + .long 1072530432 + .long 0 + .long 1072527360 + .long 0 + .long 1072523264 + .long 0 + .long 1072520192 + .long 0 + .long 1072517120 + .long 0 + .long 1072514048 + .long 0 + .long 1072510976 + .long 0 + .long 1072507904 + .long 0 + .long 1072504832 + .long 0 + .long 1072501760 + .long 0 + .long 1072498688 + .long 0 + .long 1072495616 + .long 0 + .long 1072492544 + .long 0 + .long 1072489472 + .long 0 + .long 1072486400 + .long 0 + .long 1072483328 + .long 0 + .long 1072480256 + .long 0 + .long 1072478208 + .long 0 + .long 1072475136 + .long 0 + .long 1072472064 + .long 0 + .long 1072468992 + .long 0 + .long 1072465920 + .long 0 + .long 1072462848 + .long 0 + .long 1072459776 + .long 0 + .long 1072457728 + .long 0 + .long 1072454656 + .long 0 + .long 1072451584 + .long 0 + .long 1072448512 + .long 0 + .long 1072446464 + .long 0 + .long 1072443392 + .long 0 + .long 1072440320 + .long 0 + .long 1072437248 + .long 0 + .long 1072435200 + .long 0 + .long 1072432128 + .long 0 + .long 1072429056 + .long 0 + .long 1072427008 + .long 0 + .long 1072423936 + .long 0 + .long 1072420864 + .long 0 + .long 1072418816 + .long 0 + .long 1072415744 + .long 0 + .long 1072412672 + .long 0 + .long 1072410624 + .long 0 + .long 1072407552 + .long 0 + .long 1072405504 + .long 0 + .long 1072402432 + .long 0 + .long 1072400384 + .long 0 + .long 1072397312 + .long 0 + .long 1072395264 + .long 0 + .long 1072392192 + .long 0 + .long 1072390144 + .long 0 + .long 1072387072 + .long 0 + .long 1072385024 + .long 0 + .long 1072381952 + .long 0 + .long 1072379904 + .long 0 + .long 1072376832 + .long 0 + .long 1072374784 + .long 0 + .long 1072371712 + .long 0 + .long 1072369664 + .long 0 + .long 1072366592 + .long 0 + .long 1072364544 + .long 0 + .long 1072362496 + .long 0 + .long 1072359424 + .long 0 + .long 1072357376 + .long 0 + .long 1072355328 + .long 0 + .long 1072352256 + .long 0 + .long 1072350208 + .long 0 + .long 1072347136 + .long 0 + .long 1072345088 + .long 0 + .long 1072343040 + .long 0 + .long 1072340992 + .long 0 + .long 1072337920 + .long 0 + .long 1072335872 + .long 0 + .long 1072333824 + .long 0 + .long 1072330752 + .long 0 + .long 1072328704 + .long 0 + .long 1072326656 + .long 0 + .long 1072324608 + .long 0 + .long 1072321536 + .long 0 + .long 1072319488 + .long 0 + .long 1072317440 + .long 0 + .long 1072315392 + .long 0 + .long 1072313344 + .long 0 + .long 1072310272 + .long 0 + .long 1072308224 + .long 0 + .long 1072306176 + .long 0 + .long 1072304128 + .long 0 + .long 1072302080 + .long 0 + .long 1072300032 + .long 0 + .long 1072296960 + .long 0 + .long 1072294912 + .long 0 + .long 1072292864 + .long 0 + .long 1072290816 + .long 0 + .long 1072288768 + .long 0 + .long 1072286720 + .long 0 + .long 1072284672 + .long 0 + .long 1072282624 + .long 0 + .long 1072280576 + .long 0 + .long 1072278528 + .long 0 + .long 1072275456 + .long 0 + .long 1072273408 + .long 0 + .long 1072271360 + .long 0 + .long 1072269312 + .long 0 + .long 1072267264 + .long 0 + .long 1072265216 + .long 0 + .long 1072263168 + .long 0 + .long 1072261120 + .long 0 + .long 1072259072 + .long 0 + .long 1072257024 + .long 0 + .long 1072254976 + .long 0 + .long 1072252928 + .long 0 + .long 1072250880 + .long 0 + .long 1072248832 + .long 0 + .long 1072246784 + .long 0 + .long 1072244736 + .long 0 + .long 1072243712 + .long 0 + .long 1072241664 + .long 0 + .long 1072239616 + .long 0 + .long 1072237568 + .long 0 + .long 1072235520 + .long 0 + .long 1072233472 + .long 0 + .long 1072231424 + .long 0 + .long 1072229376 + .long 0 + .long 1072227328 + .long 0 + .long 1072225280 + .long 0 + .long 1072223232 + .long 0 + .long 1072222208 + .long 0 + .long 1072220160 + .long 0 + .long 1072218112 + .long 0 + .long 1072216064 + .long 0 + .long 1072214016 + .long 0 + .long 1072211968 + .long 0 + .long 1072210944 + .long 0 + .long 1072208896 + .long 0 + .long 1072206848 + .long 0 + .long 1072204800 + .long 0 + .long 1072202752 + .long 0 + .long 1072201728 + .long 0 + .long 1072199680 + .long 0 + .long 1072197632 + .long 0 + .long 1072195584 + .long 0 + .long 1072193536 + .long 0 + .long 1072192512 + .long 0 + .long 1072190464 + .long 0 + .long 1072188416 + .long 0 + .long 1072186368 + .long 0 + .long 1072185344 + .long 0 + .long 1072183296 + .long 0 + .long 1072181248 + .long 0 + .long 1072179200 + .long 0 + .long 1072178176 + .long 0 + .long 1072176128 + .long 0 + .long 1072174080 + .long 0 + .long 1072173056 + .long 0 + .long 1072171008 + .long 0 + .long 1072168960 + .long 0 + .long 1072167936 + .long 0 + .long 1072165888 + .long 0 + .long 1072163840 + .long 0 + .long 1072161792 + .long 0 + .long 1072160768 + .long 0 + .long 1072158720 + .long 0 + .long 1072157696 + .long 0 + .long 1072155648 + .long 0 + .long 1072153600 + .long 0 + .long 1072152576 + .long 0 + .long 1072150528 + .long 0 + .long 1072148480 + .long 0 + .long 1072147456 + .long 0 + .long 1072145408 + .long 0 + .long 1072143360 + .long 0 + .long 1072142336 + .long 0 + .long 1072140288 + .long 0 + .long 1072139264 + .long 0 + .long 1072137216 + .long 0 + .long 1072135168 + .long 0 + .long 1072134144 + .long 0 + .long 1072132096 + .long 0 + .long 1072131072 + .long 0 + .long 1072129024 + .long 0 + .long 1072128000 + .long 0 + .long 1072125952 + .long 0 + .long 1072124928 + .long 0 + .long 1072122880 + .long 0 + .long 1072120832 + .long 0 + .long 1072119808 + .long 0 + .long 1072117760 + .long 0 + .long 1072116736 + .long 0 + .long 1072114688 + .long 0 + .long 1072113664 + .long 0 + .long 1072111616 + .long 0 + .long 1072110592 + .long 0 + .long 1072108544 + .long 0 + .long 1072107520 + .long 0 + .long 1072105472 + .long 0 + .long 1072104448 + .long 0 + .long 1072102400 + .long 0 + .long 1072101376 + .long 0 + .long 1072099328 + .long 0 + .long 1072098304 + .long 0 + .long 1072096256 + .long 0 + .long 1072095232 + .long 0 + .long 1072094208 + .long 0 + .long 1072092160 + .long 0 + .long 1072091136 + .long 0 + .long 1072089088 + .long 0 + .long 1072088064 + .long 0 + .long 1072086016 + .long 0 + .long 1072084992 + .long 0 + .long 1072082944 + .long 0 + .long 1072081920 + .long 0 + .long 1072080896 + .long 0 + .long 1072078848 + .long 0 + .long 1072075776 + .long 0 + .long 1072073728 + .long 0 + .long 1072070656 + .long 0 + .long 1072067584 + .long 0 + .long 1072064512 + .long 0 + .long 1072061440 + .long 0 + .long 1072059392 + .long 0 + .long 1072056320 + .long 0 + .long 1072053248 + .long 0 + .long 1072051200 + .long 0 + .long 1072048128 + .long 0 + .long 1072045056 + .long 0 + .long 1072043008 + .long 0 + .long 1072039936 + .long 0 + .long 1072037888 + .long 0 + .long 1072034816 + .long 0 + .long 1072031744 + .long 0 + .long 1072029696 + .long 0 + .long 1072026624 + .long 0 + .long 1072024576 + .long 0 + .long 1072021504 + .long 0 + .long 1072019456 + .long 0 + .long 1072016384 + .long 0 + .long 1072014336 + .long 0 + .long 1072011264 + .long 0 + .long 1072009216 + .long 0 + .long 1072006144 + .long 0 + .long 1072004096 + .long 0 + .long 1072002048 + .long 0 + .long 1071998976 + .long 0 + .long 1071996928 + .long 0 + .long 1071993856 + .long 0 + .long 1071991808 + .long 0 + .long 1071989760 + .long 0 + .long 1071986688 + .long 0 + .long 1071984640 + .long 0 + .long 1071982592 + .long 0 + .long 1071979520 + .long 0 + .long 1071977472 + .long 0 + .long 1071975424 + .long 0 + .long 1071972352 + .long 0 + .long 1071970304 + .long 0 + .long 1071968256 + .long 0 + .long 1071966208 + .long 0 + .long 1071964160 + .long 0 + .long 1071961088 + .long 0 + .long 1071959040 + .long 0 + .long 1071956992 + .long 0 + .long 1071954944 + .long 0 + .long 1071952896 + .long 0 + .long 1071949824 + .long 0 + .long 1071947776 + .long 0 + .long 1071945728 + .long 0 + .long 1071943680 + .long 0 + .long 1071941632 + .long 0 + .long 1071939584 + .long 0 + .long 1071937536 + .long 0 + .long 1071935488 + .long 0 + .long 1071933440 + .long 0 + .long 1071930368 + .long 0 + .long 1071928320 + .long 0 + .long 1071926272 + .long 0 + .long 1071924224 + .long 0 + .long 1071922176 + .long 0 + .long 1071920128 + .long 0 + .long 1071918080 + .long 0 + .long 1071916032 + .long 0 + .long 1071913984 + .long 0 + .long 1071911936 + .long 0 + .long 1071909888 + .long 0 + .long 1071907840 + .long 0 + .long 1071905792 + .long 0 + .long 1071903744 + .long 0 + .long 1071901696 + .long 0 + .long 1071900672 + .long 0 + .long 1071898624 + .long 0 + .long 1071896576 + .long 0 + .long 1071894528 + .long 0 + .long 1071892480 + .long 0 + .long 1071890432 + .long 0 + .long 1071888384 + .long 0 + .long 1071886336 + .long 0 + .long 1071884288 + .long 0 + .long 1071883264 + .long 0 + .long 1071881216 + .long 0 + .long 1071879168 + .long 0 + .long 1071877120 + .long 0 + .long 1071875072 + .long 0 + .long 1071873024 + .long 0 + .long 1071872000 + .long 0 + .long 1071869952 + .long 0 + .long 1071867904 + .long 0 + .long 1071865856 + .long 0 + .long 1071864832 + .long 0 + .long 1071862784 + .long 0 + .long 1071860736 + .long 0 + .long 1071858688 + .long 0 + .long 1071856640 + .long 0 + .long 1071855616 + .long 0 + .long 1071853568 + .long 0 + .long 1071851520 + .long 0 + .long 1071850496 + .long 0 + .long 1071848448 + .long 0 + .long 1071846400 + .long 0 + .long 1071844352 + .long 0 + .long 1071843328 + .long 0 + .long 1071841280 + .long 0 + .long 1071839232 + .long 0 + .long 1071838208 + .long 0 + .long 1071836160 + .long 0 + .long 1071834112 + .long 0 + .long 1071833088 + .long 0 + .long 1071831040 + .long 0 + .long 1071830016 + .long 0 + .long 1071827968 + .long 0 + .long 1071825920 + .long 0 + .long 1071824896 + .long 0 + .long 1071822848 + .long 0 + .long 1071821824 + .long 0 + .long 1071819776 + .long 0 + .long 1071817728 + .long 0 + .long 1071816704 + .long 0 + .long 1071814656 + .long 0 + .long 1071813632 + .long 0 + .long 1071811584 + .long 0 + .long 1071810560 + .long 0 + .long 1071808512 + .long 0 + .long 1071806464 + .long 0 + .long 1071805440 + .long 0 + .long 1071803392 + .long 0 + .long 1071802368 + .long 0 + .long 1071800320 + .long 0 + .long 1071799296 + .long 0 + .long 1071797248 + .long 0 + .long 1071796224 + .long 0 + .long 1071794176 + .long 0 + .long 1071793152 + .long 0 + .long 1071791104 + .long 0 + .long 1071790080 + .long 0 + .long 1071788032 + .long 0 + .long 1071787008 + .long 0 + .long 1071784960 + .long 0 + .long 1071783936 + .long 0 + .long 1071782912 + .long 0 + .long 1071780864 + .long 0 + .long 1071779840 + .long 0 + .long 1071777792 + .long 0 + .long 1071776768 + .long 0 + .long 1071774720 + .long 0 + .long 1071773696 + .long 0 + .long 1071772672 + .long 0 + .long 1071770624 + .long 0 + .long 1071769600 + .long 0 + .long 1071767552 + .long 0 + .long 1071766528 + .long 0 + .long 1071765504 + .long 0 + .long 1071763456 + .long 0 + .long 1071762432 + .long 0 + .long 1071760384 + .long 0 + .long 1071759360 + .long 0 + .long 1071758336 + .long 0 + .long 1071756288 + .long 0 + .long 1071755264 + .long 0 + .long 1071754240 + .long 0 + .long 1071752192 + .long 0 + .long 1071751168 + .long 0 + .long 1071750144 + .long 0 + .long 1071748096 + .long 0 + .long 1071747072 + .long 0 + .long 1071746048 + .long 0 + .long 1071744000 + .long 0 + .long 1071742976 + .long 0 + .long 1071741952 + .long 0 + .long 1071739904 + .long 0 + .long 1071738880 + .long 0 + .long 1071737856 + .long 0 + .long 1071736832 + .long 0 + .long 1071734784 + .long 0 + .long 1071733760 + .long 0 + .long 1071732736 + .long 0 + .long 1071730688 + .long 0 + .long 1071729664 + .long 0 + .long 1071728640 + .long 0 + .long 1071727616 + .long 0 + .long 1071725568 + .long 0 + .long 1071724544 + .long 0 + .long 1071723520 + .long 0 + .long 1071722496 + .long 0 + .long 1071720448 + .long 0 + .long 1071719424 + .long 0 + .long 1071718400 + .long 0 + .long 1071717376 + .long 0 + .long 1071715328 + .long 0 + .long 1071714304 + .long 0 + .long 1071713280 + .long 0 + .long 1071712256 + .long 0 + .long 1071711232 + .long 0 + .long 1071709184 + .long 0 + .long 1071708160 + .long 0 + .long 1071707136 + .long 0 + .long 1071706112 + .long 0 + .long 1071705088 + .long 0 + .long 1071704064 + .long 0 + .long 1071702016 + .long 0 + .long 1071700992 + .long 0 + .long 1071699968 + .long 0 + .long 1071698944 + .long 0 + .long 1071697920 + .long 0 + .long 1071696896 + .long 0 + .long 1071694848 + .long 0 + .long 1071693824 + .long 0 + .long 1071692800 + .long 0 + .long 1071691776 + .long 0 + .long 1071690752 + .long 0 + .long 1071689728 + .long 0 + .long 1071688704 + .long 0 + .long 1071686656 + .long 0 + .long 1071685632 + .long 0 + .long 1071684608 + .long 0 + .long 1071683584 + .long 0 + .long 1071682560 + .long 0 + .long 1071681536 + .long 0 + .long 1071680512 + .long 0 + .long 1071679488 + .long 0 + .long 1071677440 + .long 0 + .long 1071676416 + .long 0 + .long 1071675392 + .long 0 + .long 1071674368 + .long 0 + .long 1071673344 + .long 0 + .long 1071672320 + .long 0 + .long 1071671296 + .long 0 + .long 1071670272 + .long 0 + .long 1071669248 + .long 0 + .long 1071668224 + .long 0 + .long 1071667200 + .long 0 + .long 1071666176 + .long 0 + .long 1071665152 + .long 0 + .long 1071663104 + .long 0 + .long 1071662080 + .long 0 + .long 1071661056 + .long 0 + .long 1071660032 + .long 0 + .long 1071659008 + .long 0 + .long 1071657984 + .long 0 + .long 1071656960 + .long 0 + .long 1071655936 + .long 0 + .long 1071654912 + .long 0 + .long 1071653888 + .long 0 + .long 1071652864 + .long 0 + .long 1071651840 + .long 0 + .long 1071650816 + .long 0 + .long 1071649792 + .long 0 + .long 1071648768 + .long 0 + .long 1071647744 + .long 0 + .long 1071646720 + .long 0 + .long 1071645696 + .long 0 + .long 1071644672 + .long 0 + .long 1101004800 + .long 1073741824 + .long 1095761920 + .long 256 + .long 1118830592 + .long 0 + .long 1048576 + .long 0 + .long 1017118720 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 0 + .long 1072693248 + .long 0 + .long 1071644672 + .long 1476395008 + .long 1069897045 + .long 1768958041 + .long 3189069141 + .long 805306368 + .long 1068708659 + .long 3580333578 + .long 1040816593 + .long 3067382784 + .long 1067899757 + .long 3397590151 + .long 1067392113 + .long 2939529726 + .long 1066854585 + .long 1423429166 + .long 1066517752 + .long 1775218934 + .long 1066178574 + .long 1185392460 + .long 1065859647 + .long 289998670 + .long 1065577550 + .long 3179807072 + .long 1065648121 + .long 3781007284 + .long 1061576176 + .long 2482106687 + .long 1067019199 + .long 763519713 + .long 3214591591 + .long 3695107454 + .long 1067530646 + .long 0 + .long 1073741824 + .long 1124791109 + .long 1006764147 + .long 1476395008 + .long 1069897045 + .long 1953913876 + .long 3189069141 + .long 805306368 + .long 1067660083 + .long 165110192 + .long 1039768033 + .long 3067304082 + .long 1065802605 + .long 3404727379 + .long 1064246385 + .long 2737480376 + .long 1062660281 + .long 933797922 + .long 1061274873 + .long 1475716730 + .long 1059887095 + .long 1511619763 + .long 1058519827 + .long 556024211 + .long 1057187555 + .long 3482101045 + .long 1056217350 + .long 1174622859 + .long 1050762633 + .long 899668651 + .long 1055506366 + .long 1081094694 + .long 3202035365 + .long 2559814773 + .long 1053906576 + .long 0 + .long 3219128320 + .long 0 + .long 1071120384 + .long 0 + .long 3218341888 + .long 0 + .long 1070694400 + .long 0 + .long 3218046976 + .long 0 + .long 1070391296 + .long 0 + .long 3217739776 + .type _vmldASinHATab,@object + .size _vmldASinHATab,4504 diff --git a/sysdeps/x86_64/fpu/svml_d_asin2_core.S b/sysdeps/x86_64/fpu/svml_d_asin2_core.S new file mode 100644 index 0000000000..8ff8bc58df --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_d_asin2_core.S @@ -0,0 +1,29 @@ +/* Function asin vectorized with SSE2. + Copyright (C) 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 "svml_d_wrapper_impl.h" + + .text +ENTRY (_ZGVbN2v_asin) +WRAPPER_IMPL_SSE2 asin +END (_ZGVbN2v_asin) + +#ifndef USE_MULTIARCH + libmvec_hidden_def (_ZGVbN2v_asin) +#endif diff --git a/sysdeps/x86_64/fpu/svml_d_asin4_core.S b/sysdeps/x86_64/fpu/svml_d_asin4_core.S new file mode 100644 index 0000000000..dbe33952bc --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_d_asin4_core.S @@ -0,0 +1,29 @@ +/* Function asin vectorized with AVX2, wrapper version. + Copyright (C) 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 "svml_d_wrapper_impl.h" + + .text +ENTRY (_ZGVdN4v_asin) +WRAPPER_IMPL_AVX _ZGVbN2v_asin +END (_ZGVdN4v_asin) + +#ifndef USE_MULTIARCH + libmvec_hidden_def (_ZGVdN4v_asin) +#endif diff --git a/sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S new file mode 100644 index 0000000000..513a31bde5 --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_d_asin4_core_avx.S @@ -0,0 +1,25 @@ +/* Function asin vectorized in AVX ISA as wrapper to SSE4 ISA version. + Copyright (C) 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 "svml_d_wrapper_impl.h" + + .text +ENTRY (_ZGVcN4v_asin) +WRAPPER_IMPL_AVX _ZGVbN2v_asin +END (_ZGVcN4v_asin) diff --git a/sysdeps/x86_64/fpu/svml_d_asin8_core.S b/sysdeps/x86_64/fpu/svml_d_asin8_core.S new file mode 100644 index 0000000000..06694298cf --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_d_asin8_core.S @@ -0,0 +1,25 @@ +/* Function asin vectorized with AVX-512, wrapper to AVX2. + Copyright (C) 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 "svml_d_wrapper_impl.h" + + .text +ENTRY (_ZGVeN8v_asin) +WRAPPER_IMPL_AVX512 _ZGVdN4v_asin +END (_ZGVeN8v_asin) diff --git a/sysdeps/x86_64/fpu/svml_s_asinf16_core.S b/sysdeps/x86_64/fpu/svml_s_asinf16_core.S new file mode 100644 index 0000000000..015d583e3f --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_s_asinf16_core.S @@ -0,0 +1,25 @@ +/* Function asinf vectorized with AVX-512. Wrapper to AVX2 version. + Copyright (C) 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 "svml_s_wrapper_impl.h" + + .text +ENTRY (_ZGVeN16v_asinf) +WRAPPER_IMPL_AVX512 _ZGVdN8v_asinf +END (_ZGVeN16v_asinf) diff --git a/sysdeps/x86_64/fpu/svml_s_asinf4_core.S b/sysdeps/x86_64/fpu/svml_s_asinf4_core.S new file mode 100644 index 0000000000..d80f06c16d --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_s_asinf4_core.S @@ -0,0 +1,29 @@ +/* Function asinf vectorized with SSE2, wrapper version. + Copyright (C) 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 "svml_s_wrapper_impl.h" + + .text +ENTRY (_ZGVbN4v_asinf) +WRAPPER_IMPL_SSE2 asinf +END (_ZGVbN4v_asinf) + +#ifndef USE_MULTIARCH + libmvec_hidden_def (_ZGVbN4v_asinf) +#endif diff --git a/sysdeps/x86_64/fpu/svml_s_asinf8_core.S b/sysdeps/x86_64/fpu/svml_s_asinf8_core.S new file mode 100644 index 0000000000..304ad0a7f5 --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_s_asinf8_core.S @@ -0,0 +1,29 @@ +/* Function asinf vectorized with AVX2, wrapper version. + Copyright (C) 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 "svml_s_wrapper_impl.h" + + .text +ENTRY (_ZGVdN8v_asinf) +WRAPPER_IMPL_AVX _ZGVbN4v_asinf +END (_ZGVdN8v_asinf) + +#ifndef USE_MULTIARCH + libmvec_hidden_def (_ZGVdN8v_asinf) +#endif diff --git a/sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S new file mode 100644 index 0000000000..a2f7dc112e --- /dev/null +++ b/sysdeps/x86_64/fpu/svml_s_asinf8_core_avx.S @@ -0,0 +1,25 @@ +/* Function asinf vectorized in AVX ISA as wrapper to SSE4 ISA version. + Copyright (C) 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 "svml_s_wrapper_impl.h" + + .text +ENTRY (_ZGVcN8v_asinf) +WRAPPER_IMPL_AVX _ZGVbN4v_asinf +END (_ZGVcN8v_asinf) diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx.c new file mode 100644 index 0000000000..e37cfdce58 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx.c @@ -0,0 +1 @@ +#include "test-double-libmvec-asin.c" diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx2.c b/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx2.c new file mode 100644 index 0000000000..e37cfdce58 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx2.c @@ -0,0 +1 @@ +#include "test-double-libmvec-asin.c" diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx512f.c b/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx512f.c new file mode 100644 index 0000000000..e37cfdce58 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-double-libmvec-asin-avx512f.c @@ -0,0 +1 @@ +#include "test-double-libmvec-asin.c" diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-asin.c b/sysdeps/x86_64/fpu/test-double-libmvec-asin.c new file mode 100644 index 0000000000..d2e16e67f4 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-double-libmvec-asin.c @@ -0,0 +1,3 @@ +#define LIBMVEC_TYPE double +#define LIBMVEC_FUNC asin +#include "test-vector-abi-arg1.h" diff --git a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c index 3a6b956116..c1b251c84e 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c @@ -29,6 +29,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVbN2v_exp) VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVbN2vv_pow) VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVbN2v_acos) VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVbN2v_acosh) +VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVbN2v_asin) #define VEC_INT_TYPE __m128i diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c index 55dd89aa4d..4083423061 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c @@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVdN4v_exp) VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVdN4vv_pow) VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVdN4v_acos) VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVdN4v_acosh) +VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVdN4v_asin) #ifndef __ILP32__ # define VEC_INT_TYPE __m256i diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c index 93a05f8eac..e3c6fea5b8 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c @@ -29,6 +29,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVcN4v_exp) VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVcN4vv_pow) VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVcN4v_acos) VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVcN4v_acosh) +VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVcN4v_asin) #define VEC_INT_TYPE __m128i diff --git a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c index 284fc75888..f6b6934b92 100644 --- a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c +++ b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c @@ -29,6 +29,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (exp), _ZGVeN8v_exp) VECTOR_WRAPPER_ff (WRAPPER_NAME (pow), _ZGVeN8vv_pow) VECTOR_WRAPPER (WRAPPER_NAME (acos), _ZGVeN8v_acos) VECTOR_WRAPPER (WRAPPER_NAME (acosh), _ZGVeN8v_acosh) +VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVeN8v_asin) #ifndef __ILP32__ # define VEC_INT_TYPE __m512i diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx.c b/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx.c new file mode 100644 index 0000000000..6aa8f5f370 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx.c @@ -0,0 +1 @@ +#include "test-float-libmvec-asinf.c" diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx2.c b/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx2.c new file mode 100644 index 0000000000..6aa8f5f370 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx2.c @@ -0,0 +1 @@ +#include "test-float-libmvec-asinf.c" diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx512f.c b/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx512f.c new file mode 100644 index 0000000000..6aa8f5f370 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-float-libmvec-asinf-avx512f.c @@ -0,0 +1 @@ +#include "test-float-libmvec-asinf.c" diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-asinf.c b/sysdeps/x86_64/fpu/test-float-libmvec-asinf.c new file mode 100644 index 0000000000..2bbe2395a0 --- /dev/null +++ b/sysdeps/x86_64/fpu/test-float-libmvec-asinf.c @@ -0,0 +1,3 @@ +#define LIBMVEC_TYPE float +#define LIBMVEC_FUNC asinf +#include "test-vector-abi-arg1.h" diff --git a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c index 69c45f82a4..63221da5ac 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c @@ -29,6 +29,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVeN16v_expf) VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVeN16vv_powf) VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVeN16v_acosf) VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVeN16v_acoshf) +VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVeN16v_asinf) #define VEC_INT_TYPE __m512i diff --git a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c index 05296b1c06..d82b2e1556 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c @@ -29,6 +29,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVbN4v_expf) VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVbN4vv_powf) VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVbN4v_acosf) VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVbN4v_acoshf) +VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVbN4v_asinf) #define VEC_INT_TYPE __m128i diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c index 13b9aba8d9..fb35f7aa65 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c @@ -32,6 +32,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVdN8v_expf) VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVdN8vv_powf) VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVdN8v_acosf) VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVdN8v_acoshf) +VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVdN8v_asinf) /* Redefinition of wrapper to be compatible with _ZGVdN8vvv_sincosf. */ #undef VECTOR_WRAPPER_fFF diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c index 274b742448..171d92d0b1 100644 --- a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c +++ b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c @@ -29,6 +29,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (expf), _ZGVcN8v_expf) VECTOR_WRAPPER_ff (WRAPPER_NAME (powf), _ZGVcN8vv_powf) VECTOR_WRAPPER (WRAPPER_NAME (acosf), _ZGVcN8v_acosf) VECTOR_WRAPPER (WRAPPER_NAME (acoshf), _ZGVcN8v_acoshf) +VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVcN8v_asinf) #define VEC_INT_TYPE __m128i