]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/x86_64/fpu/svml_d_trig_data.S
x86-64: Add vector log1p/log1pf implementation to libmvec
[thirdparty/glibc.git] / sysdeps / x86_64 / fpu / svml_d_trig_data.S
CommitLineData
5872b835 1/* Data for vectorized sin, cos, sincos.
2b778ceb 2 Copyright (C) 2014-2021 Free Software Foundation, Inc.
21933112
AS
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
5a82c748 17 <https://www.gnu.org/licenses/>. */
21933112 18
5872b835 19#include "svml_d_trig_data.h"
21933112
AS
20
21 .section .rodata, "a"
22 .align 64
23
5872b835 24/* Data table for vector implementations.
21933112
AS
25 The table may contain polynomial, reduction, lookup
26 coefficients and other constants obtained through different
27 methods of research and experimental work.
28 */
5872b835
AS
29 .globl __svml_d_trig_data
30__svml_d_trig_data:
21933112
AS
31
32/* General purpose constants:
33 absolute value mask
34 */
35double_vector __dAbsMask 0x7fffffffffffffff
36
37/* working range threshold */
38double_vector __dRangeVal 0x4160000000000000
39
5872b835
AS
40/* working range threshold */
41double_vector __dRangeVal_sin 0x4170000000000000
42
21933112
AS
43/* PI/2 */
44double_vector __dHalfPI 0x3ff921fb54442d18
45
46/* 1/PI */
47double_vector __dInvPI 0x3fd45f306dc9c883
48
49/* right-shifter constant */
50double_vector __dRShifter 0x4338000000000000
51
5872b835
AS
52/* 0.0 */
53double_vector __dZero 0x0000000000000000
54
55/* -0.0 */
56double_vector __lNZero 0x8000000000000000
57
21933112
AS
58/* 0.5 */
59double_vector __dOneHalf 0x3fe0000000000000
60
61/* Range reduction PI-based constants:
62 PI high part
63 */
64double_vector __dPI1 0x400921fb40000000
65
66/* PI mid part 1 */
67double_vector __dPI2 0x3e84442d00000000
68
69/* PI mid part 2 */
70double_vector __dPI3 0x3d08469880000000
71
72/* PI low part */
73double_vector __dPI4 0x3b88cc51701b839a
74
75/* Range reduction PI-based constants if FMA available:
76 PI high part (FMA available)
77 */
78double_vector __dPI1_FMA 0x400921fb54442d18
79
80/* PI mid part (FMA available) */
81double_vector __dPI2_FMA 0x3ca1a62633145c06
82
83/* PI low part (FMA available) */
84double_vector __dPI3_FMA 0x395c1cd129024e09
85
5872b835
AS
86/* HalfPI1 */
87double_vector __dHalfPI1 0x3ff921fc00000000
88
89/* HalfPI2 */
90double_vector __dHalfPI2 0xbea5777a00000000
91
92/* HalfPI3 */
93double_vector __dHalfPI3 0xbd473dcc00000000
94
95/* HalfPI4 */
96double_vector __dHalfPI4 0x3bf898cc51701b84
97
21933112
AS
98/* Polynomial coefficients (relative error 2^(-52.115)): */
99double_vector __dC1 0xbfc55555555554a7
100double_vector __dC2 0x3f8111111110a4a8
101double_vector __dC3 0xbf2a01a019a5b86d
102double_vector __dC4 0x3ec71de38030fea0
103double_vector __dC5 0xbe5ae63546002231
104double_vector __dC6 0x3de60e6857a2f220
105double_vector __dC7 0xbd69f0d60811aac8
106
5872b835
AS
107/* Polynomial coefficients (relative error 2^(-52.115)): */
108double_vector __dC1_sin 0xbfc55555555554a8
109double_vector __dC2_sin 0x3f8111111110a573
110double_vector __dC3_sin 0xbf2a01a019a659dd
111double_vector __dC4_sin 0x3ec71de3806add1a
112double_vector __dC5_sin 0xbe5ae6355aaa4a53
113double_vector __dC6_sin 0x3de60e6bee01d83e
114double_vector __dC7_sin 0xbd69f1517e9f65f0
115
21933112
AS
116/*
117 Additional constants:
118 absolute value mask
119 */
21933112
AS
120/* right-shifer for low accuracy version */
121double_vector __dRShifter_la 0x4330000000000000
122
123/* right-shifer-1.0 for low accuracy version */
124double_vector __dRShifterm5_la 0x432fffffffffffff
125
126/* right-shifer with low mask for low accuracy version */
127double_vector __dRXmax_la 0x43300000007ffffe
128
5872b835
AS
129 .type __svml_d_trig_data,@object
130 .size __svml_d_trig_data,.-__svml_d_trig_data