[v1,10/23] x86: Remove strpbrk-sse2.S and use the generic implementation

Message ID 20220323215734.3927131-10-goldstein.w.n@gmail.com
State Accepted, archived
Headers
Series [v1,01/23] benchtests: Use json-lib in bench-strchr.c |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Noah Goldstein March 23, 2022, 9:57 p.m. UTC
  The generic implementation is faster (see strcspn commit).

All string/memory tests pass.
---
 .../x86_64/multiarch/{strpbrk-sse2.S => strpbrk-sse2.c}  | 9 ++++-----
 sysdeps/x86_64/strpbrk.S                                 | 3 ---
 2 files changed, 4 insertions(+), 8 deletions(-)
 rename sysdeps/x86_64/multiarch/{strpbrk-sse2.S => strpbrk-sse2.c} (84%)
 delete mode 100644 sysdeps/x86_64/strpbrk.S
  

Comments

H.J. Lu March 24, 2022, 6:57 p.m. UTC | #1
On Wed, Mar 23, 2022 at 3:00 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> The generic implementation is faster (see strcspn commit).
>
> All string/memory tests pass.
> ---
>  .../x86_64/multiarch/{strpbrk-sse2.S => strpbrk-sse2.c}  | 9 ++++-----
>  sysdeps/x86_64/strpbrk.S                                 | 3 ---
>  2 files changed, 4 insertions(+), 8 deletions(-)
>  rename sysdeps/x86_64/multiarch/{strpbrk-sse2.S => strpbrk-sse2.c} (84%)
>  delete mode 100644 sysdeps/x86_64/strpbrk.S
>
> diff --git a/sysdeps/x86_64/multiarch/strpbrk-sse2.S b/sysdeps/x86_64/multiarch/strpbrk-sse2.c
> similarity index 84%
> rename from sysdeps/x86_64/multiarch/strpbrk-sse2.S
> rename to sysdeps/x86_64/multiarch/strpbrk-sse2.c
> index d537b6c27b..d03214c4fb 100644
> --- a/sysdeps/x86_64/multiarch/strpbrk-sse2.S
> +++ b/sysdeps/x86_64/multiarch/strpbrk-sse2.c
> @@ -1,4 +1,4 @@
> -/* strpbrk optimized with SSE2.
> +/* strpbrk.
>     Copyright (C) 2017-2022 Free Software Foundation, Inc.
>     This file is part of the GNU C Library.
>
> @@ -19,11 +19,10 @@
>  #if IS_IN (libc)
>
>  # include <sysdep.h>
> -# define strcspn __strpbrk_sse2
> +# define STRPBRK __strpbrk_sse2
>
>  # undef libc_hidden_builtin_def
> -# define libc_hidden_builtin_def(strpbrk)
> +# define libc_hidden_builtin_def(STRPBRK)
>  #endif
>
> -#define USE_AS_STRPBRK
> -#include <sysdeps/x86_64/strcspn.S>
> +#include <string/strpbrk.c>
> diff --git a/sysdeps/x86_64/strpbrk.S b/sysdeps/x86_64/strpbrk.S
> deleted file mode 100644
> index 21888a5b92..0000000000
> --- a/sysdeps/x86_64/strpbrk.S
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -#define strcspn strpbrk
> -#define USE_AS_STRPBRK
> -#include <sysdeps/x86_64/strcspn.S>
> --
> 2.25.1
>

LGTM.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>

Thanks.
  
Sunil Pandey May 12, 2022, 7:41 p.m. UTC | #2
On Thu, Mar 24, 2022 at 12:00 PM H.J. Lu via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> On Wed, Mar 23, 2022 at 3:00 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> >
> > The generic implementation is faster (see strcspn commit).
> >
> > All string/memory tests pass.
> > ---
> >  .../x86_64/multiarch/{strpbrk-sse2.S => strpbrk-sse2.c}  | 9 ++++-----
> >  sysdeps/x86_64/strpbrk.S                                 | 3 ---
> >  2 files changed, 4 insertions(+), 8 deletions(-)
> >  rename sysdeps/x86_64/multiarch/{strpbrk-sse2.S => strpbrk-sse2.c} (84%)
> >  delete mode 100644 sysdeps/x86_64/strpbrk.S
> >
> > diff --git a/sysdeps/x86_64/multiarch/strpbrk-sse2.S b/sysdeps/x86_64/multiarch/strpbrk-sse2.c
> > similarity index 84%
> > rename from sysdeps/x86_64/multiarch/strpbrk-sse2.S
> > rename to sysdeps/x86_64/multiarch/strpbrk-sse2.c
> > index d537b6c27b..d03214c4fb 100644
> > --- a/sysdeps/x86_64/multiarch/strpbrk-sse2.S
> > +++ b/sysdeps/x86_64/multiarch/strpbrk-sse2.c
> > @@ -1,4 +1,4 @@
> > -/* strpbrk optimized with SSE2.
> > +/* strpbrk.
> >     Copyright (C) 2017-2022 Free Software Foundation, Inc.
> >     This file is part of the GNU C Library.
> >
> > @@ -19,11 +19,10 @@
> >  #if IS_IN (libc)
> >
> >  # include <sysdep.h>
> > -# define strcspn __strpbrk_sse2
> > +# define STRPBRK __strpbrk_sse2
> >
> >  # undef libc_hidden_builtin_def
> > -# define libc_hidden_builtin_def(strpbrk)
> > +# define libc_hidden_builtin_def(STRPBRK)
> >  #endif
> >
> > -#define USE_AS_STRPBRK
> > -#include <sysdeps/x86_64/strcspn.S>
> > +#include <string/strpbrk.c>
> > diff --git a/sysdeps/x86_64/strpbrk.S b/sysdeps/x86_64/strpbrk.S
> > deleted file mode 100644
> > index 21888a5b92..0000000000
> > --- a/sysdeps/x86_64/strpbrk.S
> > +++ /dev/null
> > @@ -1,3 +0,0 @@
> > -#define strcspn strpbrk
> > -#define USE_AS_STRPBRK
> > -#include <sysdeps/x86_64/strcspn.S>
> > --
> > 2.25.1
> >
>
> LGTM.
>
> Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
>
> Thanks.
>
> --
> H.J.

I would like to backport this patch to release branches.
Any comments or objections?

--Sunil
  

Patch

diff --git a/sysdeps/x86_64/multiarch/strpbrk-sse2.S b/sysdeps/x86_64/multiarch/strpbrk-sse2.c
similarity index 84%
rename from sysdeps/x86_64/multiarch/strpbrk-sse2.S
rename to sysdeps/x86_64/multiarch/strpbrk-sse2.c
index d537b6c27b..d03214c4fb 100644
--- a/sysdeps/x86_64/multiarch/strpbrk-sse2.S
+++ b/sysdeps/x86_64/multiarch/strpbrk-sse2.c
@@ -1,4 +1,4 @@ 
-/* strpbrk optimized with SSE2.
+/* strpbrk.
    Copyright (C) 2017-2022 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -19,11 +19,10 @@ 
 #if IS_IN (libc)
 
 # include <sysdep.h>
-# define strcspn __strpbrk_sse2
+# define STRPBRK __strpbrk_sse2
 
 # undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(strpbrk)
+# define libc_hidden_builtin_def(STRPBRK)
 #endif
 
-#define USE_AS_STRPBRK
-#include <sysdeps/x86_64/strcspn.S>
+#include <string/strpbrk.c>
diff --git a/sysdeps/x86_64/strpbrk.S b/sysdeps/x86_64/strpbrk.S
deleted file mode 100644
index 21888a5b92..0000000000
--- a/sysdeps/x86_64/strpbrk.S
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#define strcspn strpbrk
-#define USE_AS_STRPBRK
-#include <sysdeps/x86_64/strcspn.S>