mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-29 16:21:07 +00:00
Combination of data tables for x86_64 vector functions sinf, cosf and sincosf.
* sysdeps/x86_64/fpu/Makefile (libmvec-support): Fixed files list. * sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S: Renamed variable and included header. * sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S: Likewise. * sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S: Likewise. * sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S: Likewise. * sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S: Likewise. * sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S: Likewise. * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S: Likewise. * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S: Likewise. * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S: Likewise. * sysdeps/x86_64/fpu/svml_s_trig_data.S: New file. * sysdeps/x86_64/fpu/svml_s_trig_data.h: Likewise. * sysdeps/x86_64/fpu/svml_s_cosf_data.S: Removed file. * sysdeps/x86_64/fpu/svml_s_cosf_data.h: Likewise. * sysdeps/x86_64/fpu/svml_s_sinf_data.S: Likewise. * sysdeps/x86_64/fpu/svml_s_sinf_data.h: Likewise. * sysdeps/x86_64/fpu/svml_s_sincosf_data.S: Likewise. * sysdeps/x86_64/fpu/svml_s_sincosf_data.h: Likewise.
This commit is contained in:
parent
ad39cce0da
commit
36870482d2
22
ChangeLog
22
ChangeLog
@ -1,3 +1,25 @@
|
|||||||
|
2015-06-24 Andrew Senkevich <andrew.senkevich@intel.com>
|
||||||
|
|
||||||
|
* sysdeps/x86_64/fpu/Makefile (libmvec-support): Fixed files list.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S: Renamed variable
|
||||||
|
and included header.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_trig_data.S: New file.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_trig_data.h: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_cosf_data.S: Removed file.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_cosf_data.h: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_sinf_data.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_sinf_data.h: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_sincosf_data.S: Likewise.
|
||||||
|
* sysdeps/x86_64/fpu/svml_s_sincosf_data.h: Likewise.
|
||||||
|
|
||||||
2015-06-23 Joseph Myers <joseph@codesourcery.com>
|
2015-06-23 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
[BZ #16526]
|
[BZ #16526]
|
||||||
|
@ -4,9 +4,9 @@ libmvec-support += svml_d_cos2_core svml_d_cos4_core_avx \
|
|||||||
svml_d_sin2_core svml_d_sin4_core_avx \
|
svml_d_sin2_core svml_d_sin4_core_avx \
|
||||||
svml_d_sin4_core svml_d_sin8_core svml_d_trig_data \
|
svml_d_sin4_core svml_d_sin8_core svml_d_trig_data \
|
||||||
svml_s_cosf4_core svml_s_cosf8_core_avx \
|
svml_s_cosf4_core svml_s_cosf8_core_avx \
|
||||||
svml_s_cosf8_core svml_s_cosf16_core svml_s_cosf_data \
|
svml_s_cosf8_core svml_s_cosf16_core svml_s_trig_data \
|
||||||
svml_s_sinf4_core svml_s_sinf8_core_avx \
|
svml_s_sinf4_core svml_s_sinf8_core_avx \
|
||||||
svml_s_sinf8_core svml_s_sinf16_core svml_s_sinf_data \
|
svml_s_sinf8_core svml_s_sinf16_core \
|
||||||
svml_d_sincos2_core svml_d_sincos4_core_avx \
|
svml_d_sincos2_core svml_d_sincos4_core_avx \
|
||||||
svml_d_sincos4_core svml_d_sincos8_core \
|
svml_d_sincos4_core svml_d_sincos8_core \
|
||||||
svml_d_log2_core svml_d_log4_core_avx svml_d_log4_core \
|
svml_d_log2_core svml_d_log4_core_avx svml_d_log4_core \
|
||||||
@ -20,8 +20,7 @@ libmvec-support += svml_d_cos2_core svml_d_cos4_core_avx \
|
|||||||
svml_d_pow_data svml_s_powf4_core svml_s_powf8_core_avx \
|
svml_d_pow_data svml_s_powf4_core svml_s_powf8_core_avx \
|
||||||
svml_s_powf8_core svml_s_powf16_core svml_s_powf_data \
|
svml_s_powf8_core svml_s_powf16_core svml_s_powf_data \
|
||||||
svml_s_sincosf4_core svml_s_sincosf8_core_avx \
|
svml_s_sincosf4_core svml_s_sincosf8_core_avx \
|
||||||
svml_s_sincosf8_core svml_s_sincosf16_core \
|
svml_s_sincosf8_core svml_s_sincosf16_core init-arch
|
||||||
svml_s_sincosf_data init-arch
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Variables for libmvec tests.
|
# Variables for libmvec tests.
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_cosf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
#include "svml_s_wrapper_impl.h"
|
#include "svml_s_wrapper_impl.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
@ -54,7 +54,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_cosf
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $1280, %rsp
|
subq $1280, %rsp
|
||||||
movq __svml_scos_data@GOTPCREL(%rip), %rdx
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rdx
|
||||||
|
|
||||||
/*
|
/*
|
||||||
h) Subtract Y*PI from X argument, where PI divided to 4 parts:
|
h) Subtract Y*PI from X argument, where PI divided to 4 parts:
|
||||||
@ -271,7 +271,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_cosf
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $1280, %rsp
|
subq $1280, %rsp
|
||||||
movq __svml_scos_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
|
|
||||||
/*
|
/*
|
||||||
h) Subtract Y*PI from X argument, where PI divided to 4 parts:
|
h) Subtract Y*PI from X argument, where PI divided to 4 parts:
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_cosf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
ENTRY (_ZGVbN4v_cosf_sse4)
|
ENTRY (_ZGVbN4v_cosf_sse4)
|
||||||
@ -51,7 +51,7 @@ ENTRY (_ZGVbN4v_cosf_sse4)
|
|||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $320, %rsp
|
subq $320, %rsp
|
||||||
movaps %xmm0, %xmm4
|
movaps %xmm0, %xmm4
|
||||||
movq __svml_scos_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
movups __sHalfPI(%rax), %xmm1
|
movups __sHalfPI(%rax), %xmm1
|
||||||
movups __sRShifter(%rax), %xmm5
|
movups __sRShifter(%rax), %xmm5
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_cosf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
ENTRY (_ZGVdN8v_cosf_avx2)
|
ENTRY (_ZGVdN8v_cosf_avx2)
|
||||||
@ -51,7 +51,7 @@ ENTRY (_ZGVdN8v_cosf_avx2)
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $448, %rsp
|
subq $448, %rsp
|
||||||
movq __svml_scos_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
vmovaps %ymm0, %ymm2
|
vmovaps %ymm0, %ymm2
|
||||||
vmovups __sRShifter(%rax), %ymm5
|
vmovups __sRShifter(%rax), %ymm5
|
||||||
vmovups __sPI1_FMA(%rax), %ymm7
|
vmovups __sPI1_FMA(%rax), %ymm7
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_sincosf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
#include "svml_s_wrapper_impl.h"
|
#include "svml_s_wrapper_impl.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -60,7 +60,7 @@ WRAPPER_IMPL_AVX512_fFF _ZGVdN8vvv_sincosf
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $1344, %rsp
|
subq $1344, %rsp
|
||||||
movq __svml_ssincos_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
vmovaps %zmm0, %zmm2
|
vmovaps %zmm0, %zmm2
|
||||||
movl $-1, %edx
|
movl $-1, %edx
|
||||||
vmovups __sAbsMask(%rax), %zmm0
|
vmovups __sAbsMask(%rax), %zmm0
|
||||||
@ -280,7 +280,7 @@ WRAPPER_IMPL_AVX512_fFF _ZGVdN8vvv_sincosf
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $1344, %rsp
|
subq $1344, %rsp
|
||||||
movq __svml_ssincos_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
vmovaps %zmm0, %zmm4
|
vmovaps %zmm0, %zmm4
|
||||||
vmovups __sAbsMask(%rax), %zmm3
|
vmovups __sAbsMask(%rax), %zmm3
|
||||||
vmovups __sInvPI(%rax), %zmm5
|
vmovups __sInvPI(%rax), %zmm5
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_sincosf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
ENTRY (_ZGVbN4vvv_sincosf_sse4)
|
ENTRY (_ZGVbN4vvv_sincosf_sse4)
|
||||||
@ -56,7 +56,7 @@ ENTRY (_ZGVbN4vvv_sincosf_sse4)
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $320, %rsp
|
subq $320, %rsp
|
||||||
movq __svml_ssincos_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
movups %xmm12, 176(%rsp)
|
movups %xmm12, 176(%rsp)
|
||||||
movups %xmm9, 160(%rsp)
|
movups %xmm9, 160(%rsp)
|
||||||
movups __sAbsMask(%rax), %xmm12
|
movups __sAbsMask(%rax), %xmm12
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_sincosf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
ENTRY(_ZGVdN8vvv_sincosf_avx2)
|
ENTRY(_ZGVdN8vvv_sincosf_avx2)
|
||||||
@ -56,7 +56,7 @@ ENTRY(_ZGVdN8vvv_sincosf_avx2)
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $448, %rsp
|
subq $448, %rsp
|
||||||
movq __svml_ssincos_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
vmovdqa %ymm0, %ymm5
|
vmovdqa %ymm0, %ymm5
|
||||||
vmovups %ymm13, 352(%rsp)
|
vmovups %ymm13, 352(%rsp)
|
||||||
vmovups __sAbsMask(%rax), %ymm2
|
vmovups __sAbsMask(%rax), %ymm2
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_sinf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
#include "svml_s_wrapper_impl.h"
|
#include "svml_s_wrapper_impl.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
@ -55,7 +55,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_sinf
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $1280, %rsp
|
subq $1280, %rsp
|
||||||
movq __svml_ssin_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
|
|
||||||
/* Check for large and special values */
|
/* Check for large and special values */
|
||||||
movl $-1, %edx
|
movl $-1, %edx
|
||||||
@ -277,7 +277,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_sinf
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $1280, %rsp
|
subq $1280, %rsp
|
||||||
movq __svml_ssin_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
|
|
||||||
/* Check for large and special values */
|
/* Check for large and special values */
|
||||||
vmovups .L_2il0floatpacket.11(%rip), %zmm14
|
vmovups .L_2il0floatpacket.11(%rip), %zmm14
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_sinf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
ENTRY(_ZGVbN4v_sinf_sse4)
|
ENTRY(_ZGVbN4v_sinf_sse4)
|
||||||
@ -53,7 +53,7 @@ ENTRY(_ZGVbN4v_sinf_sse4)
|
|||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $320, %rsp
|
subq $320, %rsp
|
||||||
movaps %xmm0, %xmm5
|
movaps %xmm0, %xmm5
|
||||||
movq __svml_ssin_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
movups __sAbsMask(%rax), %xmm2
|
movups __sAbsMask(%rax), %xmm2
|
||||||
|
|
||||||
/* b) Remove sign using AND operation */
|
/* b) Remove sign using AND operation */
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include "svml_s_sinf_data.h"
|
#include "svml_s_trig_data.h"
|
||||||
|
|
||||||
.text
|
.text
|
||||||
ENTRY(_ZGVdN8v_sinf_avx2)
|
ENTRY(_ZGVdN8v_sinf_avx2)
|
||||||
@ -51,7 +51,7 @@ ENTRY(_ZGVdN8v_sinf_avx2)
|
|||||||
cfi_def_cfa_register (%rbp)
|
cfi_def_cfa_register (%rbp)
|
||||||
andq $-64, %rsp
|
andq $-64, %rsp
|
||||||
subq $448, %rsp
|
subq $448, %rsp
|
||||||
movq __svml_ssin_data@GOTPCREL(%rip), %rax
|
movq __svml_s_trig_data@GOTPCREL(%rip), %rax
|
||||||
vmovdqa %ymm0, %ymm5
|
vmovdqa %ymm0, %ymm5
|
||||||
vmovups __sAbsMask(%rax), %ymm3
|
vmovups __sAbsMask(%rax), %ymm3
|
||||||
vmovups __sInvPI(%rax), %ymm7
|
vmovups __sInvPI(%rax), %ymm7
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,58 +0,0 @@
|
|||||||
/* Offsets for data table for vectorized cosf.
|
|
||||||
Copyright (C) 2014-2015 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
|
|
||||||
<http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
#ifndef S_COSF_DATA_H
|
|
||||||
#define S_COSF_DATA_H
|
|
||||||
|
|
||||||
.macro float_vector offset value
|
|
||||||
.if .-__svml_scos_data != \offset
|
|
||||||
.err
|
|
||||||
.endif
|
|
||||||
.rept 16
|
|
||||||
.long \value
|
|
||||||
.endr
|
|
||||||
.endm
|
|
||||||
|
|
||||||
#define __dT 0
|
|
||||||
#define __sAbsMask 4096
|
|
||||||
#define __sRangeReductionVal 4160
|
|
||||||
#define __sRangeVal 4224
|
|
||||||
#define __sS1 4288
|
|
||||||
#define __sS2 4352
|
|
||||||
#define __sC1 4416
|
|
||||||
#define __sC2 4480
|
|
||||||
#define __sPI1 4544
|
|
||||||
#define __sPI2 4608
|
|
||||||
#define __sPI3 4672
|
|
||||||
#define __sPI4 4736
|
|
||||||
#define __sPI1_FMA 4800
|
|
||||||
#define __sPI2_FMA 4864
|
|
||||||
#define __sPI3_FMA 4928
|
|
||||||
#define __sA3 4992
|
|
||||||
#define __sA5 5056
|
|
||||||
#define __sA7 5120
|
|
||||||
#define __sA9 5184
|
|
||||||
#define __sA5_FMA 5248
|
|
||||||
#define __sA7_FMA 5312
|
|
||||||
#define __sA9_FMA 5376
|
|
||||||
#define __sInvPI 5440
|
|
||||||
#define __sRShifter 5504
|
|
||||||
#define __sHalfPI 5568
|
|
||||||
#define __sOneHalf 5632
|
|
||||||
|
|
||||||
#endif
|
|
File diff suppressed because it is too large
Load Diff
@ -1,61 +0,0 @@
|
|||||||
/* Offsets for data table for function sincosf.
|
|
||||||
Copyright (C) 2014-2015 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
|
|
||||||
<http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
#ifndef S_SINCOSF_DATA_H
|
|
||||||
#define S_SINCOSF_DATA_H
|
|
||||||
|
|
||||||
#define __dT 0
|
|
||||||
#define __sAbsMask 4096
|
|
||||||
#define __sRangeReductionVal 4160
|
|
||||||
#define __sRangeVal 4224
|
|
||||||
#define __sS1 4288
|
|
||||||
#define __sS2 4352
|
|
||||||
#define __sC1 4416
|
|
||||||
#define __sC2 4480
|
|
||||||
#define __iIndexMask 4544
|
|
||||||
#define __i2pK_1 4608
|
|
||||||
#define __sSignMask 4672
|
|
||||||
#define __sPI1 4736
|
|
||||||
#define __sPI2 4800
|
|
||||||
#define __sPI3 4864
|
|
||||||
#define __sPI4 4928
|
|
||||||
#define __sPI1_FMA 4992
|
|
||||||
#define __sPI2_FMA 5056
|
|
||||||
#define __sPI3_FMA 5120
|
|
||||||
#define __sA3 5184
|
|
||||||
#define __sA5 5248
|
|
||||||
#define __sA7 5312
|
|
||||||
#define __sA9 5376
|
|
||||||
#define __sA5_FMA 5440
|
|
||||||
#define __sA7_FMA 5504
|
|
||||||
#define __sA9_FMA 5568
|
|
||||||
#define __sInvPI 5632
|
|
||||||
#define __sRShifter 5696
|
|
||||||
#define __sHalfPI 5760
|
|
||||||
#define __sOneHalf 5824
|
|
||||||
|
|
||||||
.macro float_vector offset value
|
|
||||||
.if .-__svml_ssincos_data != \offset
|
|
||||||
.err
|
|
||||||
.endif
|
|
||||||
.rept 16
|
|
||||||
.long \value
|
|
||||||
.endr
|
|
||||||
.endm
|
|
||||||
|
|
||||||
#endif
|
|
File diff suppressed because it is too large
Load Diff
@ -1,54 +0,0 @@
|
|||||||
/* Offsets for data table for vector sinf.
|
|
||||||
Copyright (C) 2014-2015 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
|
|
||||||
<http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
#ifndef S_SINF_DATA_H
|
|
||||||
#define S_SINF_DATA_H
|
|
||||||
|
|
||||||
/* Offsets for data table */
|
|
||||||
#define __dT 0
|
|
||||||
#define __sAbsMask 4096
|
|
||||||
#define __sRangeReductionVal 4160
|
|
||||||
#define __sRangeVal 4224
|
|
||||||
#define __sS1 4288
|
|
||||||
#define __sS2 4352
|
|
||||||
#define __sC1 4416
|
|
||||||
#define __sC2 4480
|
|
||||||
#define __sPI1 4544
|
|
||||||
#define __sPI2 4608
|
|
||||||
#define __sPI3 4672
|
|
||||||
#define __sPI4 4736
|
|
||||||
#define __sPI1_FMA 4800
|
|
||||||
#define __sPI2_FMA 4864
|
|
||||||
#define __sPI3_FMA 4928
|
|
||||||
#define __sA3 4992
|
|
||||||
#define __sA5 5056
|
|
||||||
#define __sA7 5120
|
|
||||||
#define __sA9 5184
|
|
||||||
#define __sInvPI 5248
|
|
||||||
#define __sRShifter 5312
|
|
||||||
|
|
||||||
.macro float_vector offset value
|
|
||||||
.if .-__svml_ssin_data != \offset
|
|
||||||
.err
|
|
||||||
.endif
|
|
||||||
.rept 16
|
|
||||||
.long \value
|
|
||||||
.endr
|
|
||||||
.endm
|
|
||||||
|
|
||||||
#endif
|
|
111
sysdeps/x86_64/fpu/svml_s_trig_data.S
Normal file
111
sysdeps/x86_64/fpu/svml_s_trig_data.S
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
/* Data for function cosf.
|
||||||
|
Copyright (C) 2014-2015 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
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include "svml_s_trig_data.h"
|
||||||
|
|
||||||
|
.section .rodata, "a"
|
||||||
|
.align 64
|
||||||
|
|
||||||
|
/* Data table for vector implementations of function cosf.
|
||||||
|
The table may contain polynomial, reduction, lookup coefficients
|
||||||
|
and other macro_names obtained through different methods
|
||||||
|
of research and experimental work. */
|
||||||
|
|
||||||
|
.globl __svml_s_trig_data
|
||||||
|
__svml_s_trig_data:
|
||||||
|
|
||||||
|
/* General purpose constants:
|
||||||
|
absolute value mask */
|
||||||
|
float_vector __sAbsMask 0x7fffffff
|
||||||
|
|
||||||
|
/* threshold for out-of-range values */
|
||||||
|
float_vector __sRangeReductionVal 0x461c4000
|
||||||
|
|
||||||
|
/* +INF */
|
||||||
|
float_vector __sRangeVal 0x7f800000
|
||||||
|
|
||||||
|
/* High Accuracy version polynomial coefficients:
|
||||||
|
S1 = -1.66666666664728165763e-01 */
|
||||||
|
float_vector __sS1 0xbe2aaaab
|
||||||
|
|
||||||
|
/* S2 = 8.33329173045453069014e-03 */
|
||||||
|
float_vector __sS2 0x3c08885c
|
||||||
|
|
||||||
|
/* C1 = -5.00000000000000000000e-01 */
|
||||||
|
float_vector __sC1 0xbf000000
|
||||||
|
|
||||||
|
/* C2 = 4.16638942914469202550e-02 */
|
||||||
|
float_vector __sC2 0x3d2aaa7c
|
||||||
|
|
||||||
|
/* Range reduction PI-based constants:
|
||||||
|
PI high part */
|
||||||
|
float_vector __sPI1 0x40490000
|
||||||
|
|
||||||
|
/* PI mid part 1 */
|
||||||
|
float_vector __sPI2 0x3a7da000
|
||||||
|
|
||||||
|
/* PI mid part 2 */
|
||||||
|
float_vector __sPI3 0x34222000
|
||||||
|
|
||||||
|
/* PI low part */
|
||||||
|
float_vector __sPI4 0x2cb4611a
|
||||||
|
|
||||||
|
/* PI1, PI2, and PI3 when FMA is available
|
||||||
|
PI high part (when FMA available) */
|
||||||
|
float_vector __sPI1_FMA 0x40490fdb
|
||||||
|
|
||||||
|
/* PI mid part (when FMA available) */
|
||||||
|
float_vector __sPI2_FMA 0xb3bbbd2e
|
||||||
|
|
||||||
|
/* PI low part (when FMA available) */
|
||||||
|
float_vector __sPI3_FMA 0xa7772ced
|
||||||
|
|
||||||
|
/* Polynomial constants for work w/o FMA, relative error ~ 2^(-26.625) */
|
||||||
|
float_vector __sA3 0xbe2aaaa6
|
||||||
|
float_vector __sA5 0x3c08876a
|
||||||
|
float_vector __sA7 0xb94fb7ff
|
||||||
|
float_vector __sA9 0x362edef8
|
||||||
|
|
||||||
|
/* Polynomial constants, work with FMA, relative error ~ 2^(-26.417) */
|
||||||
|
float_vector __sA5_FMA 0x3c088768
|
||||||
|
float_vector __sA7_FMA 0xb94fb6cf
|
||||||
|
float_vector __sA9_FMA 0x362ec335
|
||||||
|
|
||||||
|
/* 1/PI */
|
||||||
|
float_vector __sInvPI 0x3ea2f983
|
||||||
|
|
||||||
|
/* right-shifter constant */
|
||||||
|
float_vector __sRShifter 0x4b400000
|
||||||
|
|
||||||
|
/* PI/2 */
|
||||||
|
float_vector __sHalfPI 0x3fc90fdb
|
||||||
|
|
||||||
|
/* 1/2 */
|
||||||
|
float_vector __sOneHalf 0x3f000000
|
||||||
|
|
||||||
|
/* high accuracy table index mask */
|
||||||
|
float_vector __iIndexMask 0x000000ff
|
||||||
|
|
||||||
|
/* 2^(k-1) */
|
||||||
|
float_vector __i2pK_1 0x00000040
|
||||||
|
|
||||||
|
/* sign field mask */
|
||||||
|
float_vector __sSignMask 0x80000000
|
||||||
|
|
||||||
|
.type __svml_s_trig_data,@object
|
||||||
|
.size __svml_s_trig_data,.-__svml_s_trig_data
|
62
sysdeps/x86_64/fpu/svml_s_trig_data.h
Normal file
62
sysdeps/x86_64/fpu/svml_s_trig_data.h
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/* Offsets for data table for vectorized sinf, cosf, sincosf.
|
||||||
|
Copyright (C) 2014-2015 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
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#ifndef S_TRIG_DATA_H
|
||||||
|
#define S_TRIG_DATA_H
|
||||||
|
|
||||||
|
.macro float_vector offset value
|
||||||
|
.if .-__svml_s_trig_data != \offset
|
||||||
|
.err
|
||||||
|
.endif
|
||||||
|
.rept 16
|
||||||
|
.long \value
|
||||||
|
.endr
|
||||||
|
.endm
|
||||||
|
|
||||||
|
#define __sAbsMask 0
|
||||||
|
#define __sRangeReductionVal 64
|
||||||
|
#define __sRangeVal 64*2
|
||||||
|
#define __sS1 64*3
|
||||||
|
#define __sS2 64*4
|
||||||
|
#define __sC1 64*5
|
||||||
|
#define __sC2 64*6
|
||||||
|
#define __sPI1 64*7
|
||||||
|
#define __sPI2 64*8
|
||||||
|
#define __sPI3 64*9
|
||||||
|
#define __sPI4 64*10
|
||||||
|
#define __sPI1_FMA 64*11
|
||||||
|
#define __sPI2_FMA 64*12
|
||||||
|
#define __sPI3_FMA 64*13
|
||||||
|
#define __sA3 64*14
|
||||||
|
#define __sA5 64*15
|
||||||
|
#define __sA7 64*16
|
||||||
|
#define __sA9 64*17
|
||||||
|
#define __sA5_FMA 64*18
|
||||||
|
#define __sA7_FMA 64*19
|
||||||
|
#define __sA9_FMA 64*20
|
||||||
|
#define __sInvPI 64*21
|
||||||
|
#define __sRShifter 64*22
|
||||||
|
#define __sHalfPI 64*23
|
||||||
|
#define __sOneHalf 64*24
|
||||||
|
#define __iIndexMask 64*25
|
||||||
|
#define __i2pK_1 64*26
|
||||||
|
#define __sSignMask 64*27
|
||||||
|
#define __dT_cosf 64*28
|
||||||
|
#define __dT 64*92
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user