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:
parent
55d530114e
commit
d0007dc53c
@ -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 $@
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
.text
|
||||
ENTRY (_ZGVbN2v_exp)
|
||||
WRAPPER_IMPL_SSE2 __exp_finite
|
||||
WRAPPER_IMPL_SSE2 exp
|
||||
END (_ZGVbN2v_exp)
|
||||
|
||||
#ifndef USE_MULTIARCH
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
.text
|
||||
ENTRY (_ZGVbN2v_log)
|
||||
WRAPPER_IMPL_SSE2 __log_finite
|
||||
WRAPPER_IMPL_SSE2 log
|
||||
END (_ZGVbN2v_log)
|
||||
|
||||
#ifndef USE_MULTIARCH
|
||||
|
@ -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
|
||||
|
@ -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)
|
@ -22,7 +22,7 @@
|
||||
|
||||
.text
|
||||
ENTRY (_ZGVbN4v_expf)
|
||||
WRAPPER_IMPL_SSE2 __expf_finite
|
||||
WRAPPER_IMPL_SSE2 expf
|
||||
END (_ZGVbN4v_expf)
|
||||
|
||||
#ifndef USE_MULTIARCH
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
.text
|
||||
ENTRY (_ZGVbN4v_logf)
|
||||
WRAPPER_IMPL_SSE2 __logf_finite
|
||||
WRAPPER_IMPL_SSE2 logf
|
||||
END (_ZGVbN4v_logf)
|
||||
|
||||
#ifndef USE_MULTIARCH
|
||||
|
@ -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
|
||||
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias-mod.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias-mod.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias-mod.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-double-libmvec-alias.c"
|
@ -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"
|
@ -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"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias-mod.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias-mod.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias-mod.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias.c"
|
@ -1 +0,0 @@
|
||||
#include "test-float-libmvec-alias.c"
|
@ -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"
|
@ -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"
|
@ -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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user