076f82
commit 190ea5f7e4e7e98b9b6e3f29835ae8b1f6a5442e
076f82
Author: Noah Goldstein <goldstein.w.n@gmail.com>
076f82
Date:   Mon Feb 7 00:32:23 2022 -0600
076f82
076f82
    x86: Remove SSSE3 instruction for broadcast in memset.S (SSE2 Only)
076f82
    
076f82
    commit b62ace2740a106222e124cc86956448fa07abf4d
076f82
    Author: Noah Goldstein <goldstein.w.n@gmail.com>
076f82
    Date:   Sun Feb 6 00:54:18 2022 -0600
076f82
    
076f82
        x86: Improve vec generation in memset-vec-unaligned-erms.S
076f82
    
076f82
    Revert usage of 'pshufb' in broadcast logic as it is an SSSE3
076f82
    instruction and memset.S is restricted to only SSE2 instructions.
076f82
    
076f82
    (cherry picked from commit 1b0c60f95bbe2eded80b2bb5be75c0e45b11cde1)
076f82
076f82
diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S
076f82
index 34ee0bfdcb81fb39..954471e5a5bf225b 100644
076f82
--- a/sysdeps/x86_64/memset.S
076f82
+++ b/sysdeps/x86_64/memset.S
076f82
@@ -30,9 +30,10 @@
076f82
 
076f82
 # define MEMSET_SET_VEC0_AND_SET_RETURN(d, r) \
076f82
   movd d, %xmm0; \
076f82
-  pxor %xmm1, %xmm1; \
076f82
-  pshufb %xmm1, %xmm0; \
076f82
-  movq r, %rax
076f82
+  movq r, %rax; \
076f82
+  punpcklbw %xmm0, %xmm0; \
076f82
+  punpcklwd %xmm0, %xmm0; \
076f82
+  pshufd $0, %xmm0, %xmm0
076f82
 
076f82
 # define WMEMSET_SET_VEC0_AND_SET_RETURN(d, r) \
076f82
   movd d, %xmm0; \