Remove x64 _finite tests and references

Remove _finite tests and references from x86_64.  Rather than calling
__exp_finite, use exp directly (since it's the same entry point).

x86_64 builds and passes testsuite.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
Wilco Dijkstra 2019-07-16 11:29:06 -03:00 committed by Adhemerval Zanella
parent 55d530114e
commit d0007dc53c
52 changed files with 58 additions and 429 deletions

View File

@ -203,7 +203,7 @@ $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
(echo '/* GNU ld script'; echo '*/';\
cat $<; \
echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \
'AS_NEEDED ( $(libdir)/libmvec_nonshared.a $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
'AS_NEEDED ( $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
) > $@.new
mv -f $@.new $@

View File

@ -20,9 +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_s_powf8_core svml_s_powf16_core svml_s_powf_data \
svml_s_sincosf4_core svml_s_sincosf8_core_avx \
svml_s_sincosf8_core svml_s_sincosf16_core svml_finite_alias
libmvec-static-only-routines = svml_finite_alias
svml_s_sincosf8_core svml_s_sincosf16_core
endif
# Variables for libmvec tests.
@ -30,93 +28,15 @@ ifeq ($(subdir),math)
ifeq ($(build-mathvec),yes)
libmvec-tests += double-vlen2 double-vlen4 double-vlen4-avx2 \
float-vlen4 float-vlen8 float-vlen8-avx2
tests += test-double-libmvec-alias test-double-libmvec-alias-avx \
test-double-libmvec-alias-avx2 test-double-libmvec-alias-main \
test-double-libmvec-alias-avx-main test-double-libmvec-alias-avx2-main \
test-float-libmvec-alias test-float-libmvec-alias-avx \
test-float-libmvec-alias-avx2 test-float-libmvec-alias-main \
test-float-libmvec-alias-avx-main test-float-libmvec-alias-avx2-main \
test-double-libmvec-sincos test-double-libmvec-sincos-avx \
tests += test-double-libmvec-sincos test-double-libmvec-sincos-avx \
test-double-libmvec-sincos-avx2 test-float-libmvec-sincosf \
test-float-libmvec-sincosf-avx test-float-libmvec-sincosf-avx2
modules-names += test-double-libmvec-alias-mod \
test-double-libmvec-alias-avx-mod \
test-double-libmvec-alias-avx2-mod \
test-float-libmvec-alias-mod \
test-float-libmvec-alias-avx-mod \
test-float-libmvec-alias-avx2-mod
modules-names-tests += test-double-libmvec-alias-mod \
test-double-libmvec-alias-avx-mod \
test-double-libmvec-alias-avx2-mod \
test-float-libmvec-alias-mod \
test-float-libmvec-alias-avx-mod \
test-float-libmvec-alias-avx2-mod
extra-test-objs += test-double-libmvec-sincos-avx-main.o \
test-double-libmvec-sincos-avx2-main.o \
test-double-libmvec-sincos-main.o \
test-float-libmvec-sincosf-avx-main.o \
test-float-libmvec-sincosf-avx2-main.o\
test-float-libmvec-sincosf-main.o
test-double-libmvec-alias-mod.so-no-z-defs = yes
test-double-libmvec-alias-avx-mod.so-no-z-defs = yes
test-double-libmvec-alias-avx2-mod.so-no-z-defs = yes
test-float-libmvec-alias-mod.so-no-z-defs = yes
test-float-libmvec-alias-avx-mod.so-no-z-defs = yes
test-float-libmvec-alias-avx2-mod.so-no-z-defs = yes
$(objpfx)test-double-libmvec-alias: \
$(objpfx)test-double-libmvec-alias-mod.so
$(objpfx)test-double-libmvec-alias-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-alias-avx: \
$(objpfx)test-double-libmvec-alias-avx-mod.so
$(objpfx)test-double-libmvec-alias-avx-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-alias-avx2: \
$(objpfx)test-double-libmvec-alias-avx2-mod.so
$(objpfx)test-double-libmvec-alias-avx2-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-alias-main: \
$(objpfx)test-double-libmvec-alias-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-alias-avx-main: \
$(objpfx)test-double-libmvec-alias-avx-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-alias-avx2-main: \
$(objpfx)test-double-libmvec-alias-avx2-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias: \
$(objpfx)test-float-libmvec-alias-mod.so
$(objpfx)test-float-libmvec-alias-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias-avx: \
$(objpfx)test-float-libmvec-alias-avx-mod.so
$(objpfx)test-float-libmvec-alias-avx-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias-avx2: \
$(objpfx)test-float-libmvec-alias-avx2-mod.so
$(objpfx)test-float-libmvec-alias-avx2-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias-main: \
$(objpfx)test-float-libmvec-alias-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias-avx-main: \
$(objpfx)test-float-libmvec-alias-avx-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias-avx2-main: \
$(objpfx)test-float-libmvec-alias-avx2-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-sincos: \
$(objpfx)test-double-libmvec-sincos.o \
@ -144,38 +64,10 @@ $(objpfx)test-float-libmvec-sincosf-avx2: \
ifeq (yes,$(config-cflags-avx512))
libmvec-tests += double-vlen8 float-vlen16
tests += test-double-libmvec-alias-avx512 \
test-float-libmvec-alias-avx512 \
test-double-libmvec-alias-avx512-main \
test-float-libmvec-alias-avx512-main \
test-double-libmvec-sincos-avx512 \
tests += test-double-libmvec-sincos-avx512 \
test-float-libmvec-sincosf-avx512
modules-names += test-double-libmvec-alias-avx512-mod \
test-float-libmvec-alias-avx512-mod
modules-names-tests += test-double-libmvec-alias-avx512-mod \
test-float-libmvec-alias-avx512-mod
extra-test-objs += test-double-libmvec-sincos-avx512-main.o \
test-float-libmvec-sincosf-avx512-main.o
test-double-libmvec-alias-avx512-mod.so-no-z-defs = yes
test-float-libmvec-alias-avx512-mod.so-no-z-defs = yes
$(objpfx)test-double-libmvec-alias-avx512: \
$(objpfx)test-double-libmvec-alias-avx512-mod.so
$(objpfx)test-double-libmvec-alias-avx512-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-alias-avx512-main: \
$(objpfx)test-double-libmvec-alias-avx512-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias-avx512: \
$(objpfx)test-float-libmvec-alias-avx512-mod.so
$(objpfx)test-float-libmvec-alias-avx512-mod.so: \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-float-libmvec-alias-avx512-main: \
$(objpfx)test-float-libmvec-alias-avx512-mod.os \
$(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-sincos-avx512: \
$(objpfx)test-double-libmvec-sincos-avx512.o \
@ -204,17 +96,6 @@ float-vlen8-arch-ext2-cflags = -mavx2
float-vlen16-arch-ext-cflags = -mavx512f
libmvec-sincos-cflags = $(libm-test-fast-math-cflags) -fno-inline -fopenmp -Wno-unknown-pragmas
libmvec-alias-cflags = $(libmvec-sincos-cflags) -ffloat-store -ffinite-math-only
CFLAGS-test-double-libmvec-alias-mod.c = $(libmvec-alias-cflags)
CFLAGS-test-double-libmvec-alias-avx-mod.c = $(double-vlen4-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX
CFLAGS-test-double-libmvec-alias-avx2-mod.c = $(double-vlen4-arch-ext2-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX2
CFLAGS-test-double-libmvec-alias-avx512-mod.c = $(double-vlen8-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX512F
CFLAGS-test-float-libmvec-alias-mod.c = $(libmvec-alias-cflags)
CFLAGS-test-float-libmvec-alias-avx-mod.c = $(double-vlen4-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX
CFLAGS-test-float-libmvec-alias-avx2-mod.c = $(double-vlen4-arch-ext2-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX2
CFLAGS-test-float-libmvec-alias-avx512-mod.c = $(double-vlen8-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX512F
CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)

View File

@ -207,7 +207,7 @@ ENTRY (_ZGVbN2v_exp_sse4)
shlq $4, %r15
movsd 200(%rsp,%r15), %xmm0
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
movsd %xmm0, 264(%rsp,%r15)
jmp .LBL_1_8
@ -217,7 +217,7 @@ ENTRY (_ZGVbN2v_exp_sse4)
shlq $4, %r15
movsd 192(%rsp,%r15), %xmm0
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
movsd %xmm0, 256(%rsp,%r15)
jmp .LBL_1_7

View File

@ -193,7 +193,7 @@ ENTRY (_ZGVdN4v_exp_avx2)
vmovsd 328(%rsp,%r15), %xmm0
vzeroupper
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
vmovsd %xmm0, 392(%rsp,%r15)
jmp .LBL_1_8
@ -204,7 +204,7 @@ ENTRY (_ZGVdN4v_exp_avx2)
vmovsd 320(%rsp,%r15), %xmm0
vzeroupper
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
vmovsd %xmm0, 384(%rsp,%r15)
jmp .LBL_1_7

View File

@ -223,7 +223,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1160(%rsp,%r15), %xmm0
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_1_8
@ -231,7 +231,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1152(%rsp,%r15), %xmm0
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_1_7
#endif
@ -438,7 +438,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
vmovsd 1160(%rsp,%r15), %xmm0
vzeroupper
vmovsd 1160(%rsp,%r15), %xmm0
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_2_8
@ -448,7 +448,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
vmovsd 1152(%rsp,%r15), %xmm0
vzeroupper
vmovsd 1152(%rsp,%r15), %xmm0
call JUMPTARGET(__exp_finite)
call JUMPTARGET(exp)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_2_7

View File

@ -211,7 +211,7 @@ ENTRY (_ZGVbN2v_log_sse4)
shlq $4, %r15
movsd 200(%rsp,%r15), %xmm0
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
movsd %xmm0, 264(%rsp,%r15)
jmp .LBL_1_8
@ -221,7 +221,7 @@ ENTRY (_ZGVbN2v_log_sse4)
shlq $4, %r15
movsd 192(%rsp,%r15), %xmm0
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
movsd %xmm0, 256(%rsp,%r15)
jmp .LBL_1_7

View File

@ -191,7 +191,7 @@ ENTRY (_ZGVdN4v_log_avx2)
vmovsd 328(%rsp,%r15), %xmm0
vzeroupper
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
vmovsd %xmm0, 392(%rsp,%r15)
jmp .LBL_1_8
@ -202,7 +202,7 @@ ENTRY (_ZGVdN4v_log_avx2)
vmovsd 320(%rsp,%r15), %xmm0
vzeroupper
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
vmovsd %xmm0, 384(%rsp,%r15)
jmp .LBL_1_7

View File

@ -222,7 +222,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1160(%rsp,%r15), %xmm0
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_1_8
@ -230,7 +230,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1152(%rsp,%r15), %xmm0
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_1_7
#endif
@ -443,7 +443,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
vzeroupper
vmovsd 1160(%rsp,%r15), %xmm0
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_2_8
@ -455,7 +455,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
vzeroupper
vmovsd 1152(%rsp,%r15), %xmm0
call JUMPTARGET(__log_finite)
call JUMPTARGET(log)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_2_7

View File

@ -413,7 +413,7 @@ ENTRY (_ZGVbN2vv_pow_sse4)
movsd 72(%rsp,%r15), %xmm0
movsd 136(%rsp,%r15), %xmm1
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
movsd %xmm0, 200(%rsp,%r15)
jmp .LBL_1_8
@ -424,7 +424,7 @@ ENTRY (_ZGVbN2vv_pow_sse4)
movsd 64(%rsp,%r15), %xmm0
movsd 128(%rsp,%r15), %xmm1
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
movsd %xmm0, 192(%rsp,%r15)
jmp .LBL_1_7

View File

@ -367,7 +367,7 @@ ENTRY (_ZGVdN4vv_pow_avx2)
vmovsd 264(%rsp,%r15), %xmm1
vzeroupper
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
vmovsd %xmm0, 328(%rsp,%r15)
jmp .LBL_1_8
@ -379,7 +379,7 @@ ENTRY (_ZGVdN4vv_pow_avx2)
vmovsd 256(%rsp,%r15), %xmm1
vzeroupper
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
vmovsd %xmm0, 320(%rsp,%r15)
jmp .LBL_1_7

View File

@ -392,7 +392,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
shlq $4, %r15
vmovsd 1160(%rsp,%r15), %xmm0
vmovsd 1224(%rsp,%r15), %xmm1
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
vmovsd %xmm0, 1288(%rsp,%r15)
jmp .LBL_1_8
@ -401,7 +401,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
shlq $4, %r15
vmovsd 1152(%rsp,%r15), %xmm0
vmovsd 1216(%rsp,%r15), %xmm1
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
vmovsd %xmm0, 1280(%rsp,%r15)
jmp .LBL_1_7
@ -720,7 +720,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
vzeroupper
vmovsd 1160(%rsp,%r15), %xmm0
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
vmovsd %xmm0, 1288(%rsp,%r15)
jmp .LBL_2_8
@ -732,7 +732,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
vzeroupper
vmovsd 1152(%rsp,%r15), %xmm0
call JUMPTARGET(__pow_finite)
call JUMPTARGET(pow)
vmovsd %xmm0, 1280(%rsp,%r15)
jmp .LBL_2_7

View File

@ -212,14 +212,14 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
cfi_restore_state
movzbl %r12b, %r15d
vmovss 1156(%rsp,%r15,8), %xmm0
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_1_8
.LBL_1_12:
movzbl %r12b, %r15d
vmovss 1152(%rsp,%r15,8), %xmm0
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_1_7
@ -422,7 +422,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
vzeroupper
vmovss 1156(%rsp,%r15,8), %xmm0
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_2_8
@ -433,7 +433,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
vzeroupper
vmovss 1152(%rsp,%r15,8), %xmm0
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_2_7

View File

@ -195,7 +195,7 @@ ENTRY (_ZGVbN4v_expf_sse4)
movzbl %r12b, %r15d
movss 196(%rsp,%r15,8), %xmm0
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
movss %xmm0, 260(%rsp,%r15,8)
jmp .LBL_1_8
@ -204,7 +204,7 @@ ENTRY (_ZGVbN4v_expf_sse4)
movzbl %r12b, %r15d
movss 192(%rsp,%r15,8), %xmm0
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
movss %xmm0, 256(%rsp,%r15,8)
jmp .LBL_1_7

View File

@ -184,7 +184,7 @@ ENTRY(_ZGVdN8v_expf_avx2)
vmovss 324(%rsp,%r15,8), %xmm0
vzeroupper
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
vmovss %xmm0, 388(%rsp,%r15,8)
jmp .LBL_1_8
@ -194,7 +194,7 @@ ENTRY(_ZGVdN8v_expf_avx2)
vmovss 320(%rsp,%r15,8), %xmm0
vzeroupper
call JUMPTARGET(__expf_finite)
call JUMPTARGET(expf)
vmovss %xmm0, 384(%rsp,%r15,8)
jmp .LBL_1_7

View File

@ -197,14 +197,14 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
cfi_restore_state
movzbl %r12b, %r15d
vmovss 1156(%rsp,%r15,8), %xmm0
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_1_8
.LBL_1_12:
movzbl %r12b, %r15d
vmovss 1152(%rsp,%r15,8), %xmm0
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_1_7
#endif
@ -391,7 +391,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
vzeroupper
vmovss 1156(%rsp,%r15,8), %xmm0
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_2_8
@ -402,7 +402,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
vzeroupper
vmovss 1152(%rsp,%r15,8), %xmm0
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_2_7

View File

@ -177,7 +177,7 @@ ENTRY (_ZGVbN4v_logf_sse4)
movzbl %r12b, %r15d
movss 196(%rsp,%r15,8), %xmm0
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
movss %xmm0, 260(%rsp,%r15,8)
jmp .LBL_1_8
@ -186,7 +186,7 @@ ENTRY (_ZGVbN4v_logf_sse4)
movzbl %r12b, %r15d
movss 192(%rsp,%r15,8), %xmm0
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
movss %xmm0, 256(%rsp,%r15,8)
jmp .LBL_1_7

View File

@ -166,7 +166,7 @@ ENTRY(_ZGVdN8v_logf_avx2)
vmovss 324(%rsp,%r15,8), %xmm0
vzeroupper
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
vmovss %xmm0, 388(%rsp,%r15,8)
jmp .LBL_1_8
@ -176,7 +176,7 @@ ENTRY(_ZGVdN8v_logf_avx2)
vmovss 320(%rsp,%r15,8), %xmm0
vzeroupper
call JUMPTARGET(__logf_finite)
call JUMPTARGET(logf)
vmovss %xmm0, 384(%rsp,%r15,8)
jmp .LBL_1_7

View File

@ -344,7 +344,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
movzbl %r12b, %r15d
vmovss 1156(%rsp,%r15,8), %xmm0
vmovss 1220(%rsp,%r15,8), %xmm1
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
vmovss %xmm0, 1284(%rsp,%r15,8)
jmp .LBL_1_8
@ -352,7 +352,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
movzbl %r12b, %r15d
vmovss 1152(%rsp,%r15,8), %xmm0
vmovss 1216(%rsp,%r15,8), %xmm1
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
vmovss %xmm0, 1280(%rsp,%r15,8)
jmp .LBL_1_7
#endif
@ -629,7 +629,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
vmovss 1156(%rsp,%r15,8), %xmm1
vzeroupper
vmovss 1092(%rsp,%r15,8), %xmm0
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_2_8
@ -638,7 +638,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
vmovss 1152(%rsp,%r15,8), %xmm1
vzeroupper
vmovss 1088(%rsp,%r15,8), %xmm0
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_2_7
#endif

View File

@ -356,7 +356,7 @@ ENTRY (_ZGVbN4vv_powf_sse4)
movss 68(%rsp,%r15,8), %xmm0
movss 132(%rsp,%r15,8), %xmm1
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
movss %xmm0, 196(%rsp,%r15,8)
jmp .LBL_1_8
@ -366,7 +366,7 @@ ENTRY (_ZGVbN4vv_powf_sse4)
movss 64(%rsp,%r15,8), %xmm0
movss 128(%rsp,%r15,8), %xmm1
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
movss %xmm0, 192(%rsp,%r15,8)
jmp .LBL_1_7

View File

@ -317,7 +317,7 @@ ENTRY(_ZGVdN8vv_powf_avx2)
vmovss 132(%rsp,%r15,8), %xmm1
vzeroupper
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
vmovss %xmm0, 196(%rsp,%r15,8)
jmp .LBL_1_8
@ -328,7 +328,7 @@ ENTRY(_ZGVdN8vv_powf_avx2)
vmovss 128(%rsp,%r15,8), %xmm1
vzeroupper
call JUMPTARGET(__powf_finite)
call JUMPTARGET(powf)
vmovss %xmm0, 192(%rsp,%r15,8)
jmp .LBL_1_7

View File

@ -21,7 +21,7 @@
.text
ENTRY (_ZGVbN2v_exp)
WRAPPER_IMPL_SSE2 __exp_finite
WRAPPER_IMPL_SSE2 exp
END (_ZGVbN2v_exp)
#ifndef USE_MULTIARCH

View File

@ -21,7 +21,7 @@
.text
ENTRY (_ZGVbN2v_log)
WRAPPER_IMPL_SSE2 __log_finite
WRAPPER_IMPL_SSE2 log
END (_ZGVbN2v_log)
#ifndef USE_MULTIARCH

View File

@ -21,7 +21,7 @@
.text
ENTRY (_ZGVbN2vv_pow)
WRAPPER_IMPL_SSE2_ff __pow_finite
WRAPPER_IMPL_SSE2_ff pow
END (_ZGVbN2vv_pow)
#ifndef USE_MULTIARCH

View File

@ -1,58 +0,0 @@
/* These aliases added as workaround to exclude unnecessary symbol
aliases in libmvec.so while compiler creates the vector names
based on scalar asm name. Corresponding discussion is at
<https://gcc.gnu.org/ml/gcc/2015-06/msg00173.html>.
Copyright (C) 2015-2019 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/>. */
#include <sysdep.h>
#define ALIAS_IMPL(alias, target) \
ENTRY (alias); \
jmp *target@GOTPCREL(%rip); \
END (alias)
.text
ALIAS_IMPL (_ZGVbN2v___log_finite, _ZGVbN2v_log)
ALIAS_IMPL (_ZGVcN4v___log_finite, _ZGVcN4v_log)
ALIAS_IMPL (_ZGVdN4v___log_finite, _ZGVdN4v_log)
ALIAS_IMPL (_ZGVeN8v___log_finite, _ZGVeN8v_log)
ALIAS_IMPL (_ZGVbN4v___logf_finite, _ZGVbN4v_logf)
ALIAS_IMPL (_ZGVcN8v___logf_finite, _ZGVcN8v_logf)
ALIAS_IMPL (_ZGVdN8v___logf_finite, _ZGVdN8v_logf)
ALIAS_IMPL (_ZGVeN16v___logf_finite, _ZGVeN16v_logf)
ALIAS_IMPL (_ZGVbN2v___exp_finite, _ZGVbN2v_exp)
ALIAS_IMPL (_ZGVcN4v___exp_finite, _ZGVcN4v_exp)
ALIAS_IMPL (_ZGVdN4v___exp_finite, _ZGVdN4v_exp)
ALIAS_IMPL (_ZGVeN8v___exp_finite, _ZGVeN8v_exp)
ALIAS_IMPL (_ZGVbN4v___expf_finite, _ZGVbN4v_expf)
ALIAS_IMPL (_ZGVcN8v___expf_finite, _ZGVcN8v_expf)
ALIAS_IMPL (_ZGVdN8v___expf_finite, _ZGVdN8v_expf)
ALIAS_IMPL (_ZGVeN16v___expf_finite, _ZGVeN16v_expf)
ALIAS_IMPL (_ZGVbN2vv___pow_finite, _ZGVbN2vv_pow)
ALIAS_IMPL (_ZGVcN4vv___pow_finite, _ZGVcN4vv_pow)
ALIAS_IMPL (_ZGVdN4vv___pow_finite, _ZGVdN4vv_pow)
ALIAS_IMPL (_ZGVeN8vv___pow_finite, _ZGVeN8vv_pow)
ALIAS_IMPL (_ZGVbN4vv___powf_finite, _ZGVbN4vv_powf)
ALIAS_IMPL (_ZGVcN8vv___powf_finite, _ZGVcN8vv_powf)
ALIAS_IMPL (_ZGVdN8vv___powf_finite, _ZGVdN8vv_powf)
ALIAS_IMPL (_ZGVeN16vv___powf_finite, _ZGVeN16vv_powf)

View File

@ -22,7 +22,7 @@
.text
ENTRY (_ZGVbN4v_expf)
WRAPPER_IMPL_SSE2 __expf_finite
WRAPPER_IMPL_SSE2 expf
END (_ZGVbN4v_expf)
#ifndef USE_MULTIARCH

View File

@ -22,7 +22,7 @@
.text
ENTRY (_ZGVbN4v_logf)
WRAPPER_IMPL_SSE2 __logf_finite
WRAPPER_IMPL_SSE2 logf
END (_ZGVbN4v_logf)
#ifndef USE_MULTIARCH

View File

@ -21,7 +21,7 @@
.text
ENTRY (_ZGVbN4vv_powf)
WRAPPER_IMPL_SSE2_ff __powf_finite
WRAPPER_IMPL_SSE2_ff powf
END (_ZGVbN4vv_powf)
#ifndef USE_MULTIARCH

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias-mod.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias-mod.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias-mod.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-double-libmvec-alias.c"

View File

@ -1,25 +0,0 @@
/* Part of test to build shared library to ensure link against
*_finite aliases from libmvec.
Copyright (C) 2016-2019 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/>. */
#include <math.h>
#include <stdlib.h>
#include <math-tests-arch.h>
#include "test-double.h"
#include "test-libmvec-alias-mod.c"

View File

@ -1,29 +0,0 @@
/* Part of test to ensure link against *_finite aliases from libmvec.
Copyright (C) 2016-2019 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/>. */
extern int
test_finite_alias (void);
static int
do_test (void)
{
return test_finite_alias ();
}
#define TEST_FUNCTION do_test ()
#include "../../../test-skeleton.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias-mod.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias-mod.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias-mod.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias.c"

View File

@ -1 +0,0 @@
#include "test-float-libmvec-alias.c"

View File

@ -1,25 +0,0 @@
/* Part of test to build shared library to ensure link against
*_finite aliases from libmvec.
Copyright (C) 2016-2019 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/>. */
#include <math.h>
#include <stdlib.h>
#include <math-tests-arch.h>
#include "test-float.h"
#include "test-libmvec-alias-mod.c"

View File

@ -1,29 +0,0 @@
/* Part of test to ensure link against *_finite aliases from libmvec.
Copyright (C) 2016-2019 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/>. */
extern int
test_finite_alias (void);
static int
do_test (void)
{
return test_finite_alias ();
}
#define TEST_FUNCTION do_test ()
#include "../../../test-skeleton.c"

View File

@ -1,66 +0,0 @@
/* Part of test to build shared library to ensure link against
*_finite aliases from libmvec.
Copyright (C) 2016-2019 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/>. */
#define N 4000
FLOAT log_arg[N];
FLOAT exp_arg[N];
FLOAT log_res[N];
FLOAT exp_res[N];
FLOAT pow_res[N];
int arch_check = 1;
static void
init_arg (void)
{
int i;
CHECK_ARCH_EXT;
arch_check = 0;
for (i = 0; i < N; i += 1)
{
log_arg[i] = 1.0;
exp_arg[i] = 0.0;
}
}
int
test_finite_alias (void)
{
int i;
init_arg ();
if (arch_check) return 77;
#pragma omp simd
for (i = 0; i < N; i += 1)
{
log_res[i] = FUNC (log) (log_arg[i]);
exp_res[i] = FUNC (exp) (exp_arg[i]);
pow_res[i] = FUNC (pow) (log_arg[i], log_arg[i]);
}
if (log_res[0] != 0.0) return 1;
if (exp_res[0] != 1.0) return 1;
if (pow_res[0] != 1.0) return 1;
return 0;
}