diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-06-20 13:02:10 -0700 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-06-22 19:42:17 -0700 |
commit | 3079f652d7cc34456aefb412677c01e758922527 (patch) | |
tree | 5d3f749db7fcfdeb17e3765858894a15c1267e26 /sysdeps/x86_64/fpu/multiarch/svml_s_tanhf8_core_avx2.S | |
parent | 3edda6a0f013736ca9554a95e553739a41dbd4b7 (diff) | |
download | glibc-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.S | 4 |
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) |