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_atanhf16_core_avx512.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_atanhf16_core_avx512.S')
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S index f42462c581..94186a14cb 100644 --- a/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S +++ b/sysdeps/x86_64/fpu/multiarch/svml_s_atanhf16_core_avx512.S @@ -222,13 +222,13 @@ L(SPECIAL_VALUES_LOOP): tzcntl %ebx, %ebp /* Scalar math fucntion call to process special input. */ - movss 64(%rsp, %rbp, 4), %xmm0 + vmovss 64(%rsp, %rbp, 4), %xmm0 call atanhf@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) |