about summary refs log tree commit diff
path: root/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
diff options
context:
space:
mode:
authorNoah Goldstein <goldstein.w.n@gmail.com>2022-06-20 13:02:10 -0700
committerNoah Goldstein <goldstein.w.n@gmail.com>2022-06-22 19:42:17 -0700
commit3079f652d7cc34456aefb412677c01e758922527 (patch)
tree5d3f749db7fcfdeb17e3765858894a15c1267e26 /sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
parent3edda6a0f013736ca9554a95e553739a41dbd4b7 (diff)
downloadglibc-3079f652d7cc34456aefb412677c01e758922527.tar.gz
glibc-3079f652d7cc34456aefb412677c01e758922527.tar.xz
glibc-3079f652d7cc34456aefb412677c01e758922527.zip
x86: Replace all sse instructions with vex equivilent in avx+ files
Most of these don't really matter as there was no dirty upper state
but we should generally avoid stray sse when its not needed.

The one case that really matters is in svml_d_tanh4_core_avx2.S:

blendvps %xmm0, %xmm8, %xmm7

When there was a dirty upper state.

Tested on x86_64-linux
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S')
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
index 55df346a00..ea3e9f4210 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S
@@ -240,13 +240,13 @@ L(SPECIAL_VALUES_LOOP):
 	tzcntl	%ebx, %ebp
 
 	/* Scalar math function call to process special input.  */
-	movss	32(%rsp, %rbp, 4), %xmm0
+	vmovss	32(%rsp, %rbp, 4), %xmm0
 	call	tanhf@PLT
 
 	/* No good way to avoid the store-forwarding fault this will cause on
 	   return. `lfence` avoids the SF fault but at greater cost as it
 	   serialized stack/callee save restoration.  */
-	movss	%xmm0, (%rsp, %rbp, 4)
+	vmovss	%xmm0, (%rsp, %rbp, 4)
 
 	blsrl   %ebx, %ebx
 	jnz	L(SPECIAL_VALUES_LOOP)