diff mbox series

[v3,2/2] x86: Add additional benchmarks for strchr

Message ID 20210202093956.2613423-2-goldstein.w.n@gmail.com
State New
Headers show
Series [v3,1/2] x86: Refactor and improve performance of strchr-avx2.S | expand

Commit Message

develop--- via Libc-alpha Feb. 2, 2021, 9:39 a.m. UTC
From: noah <goldstein.w.n@gmail.com>

This patch adds additional benchmarks for string size of 4096 and
several benchmarks for string size 256 with different alignments.

Signed-off-by: noah <goldstein.w.n@gmail.com>
---
 benchtests/bench-strchr.c | 79 ++++++++++++++++++++++++++-------------
 1 file changed, 53 insertions(+), 26 deletions(-)

Comments

H.J. Lu Feb. 2, 2021, 2:06 p.m. UTC | #1
On Tue, Feb 2, 2021 at 1:40 AM <goldstein.w.n@gmail.com> wrote:
>
> From: noah <goldstein.w.n@gmail.com>
>
> This patch adds additional benchmarks for string size of 4096 and
> several benchmarks for string size 256 with different alignments.
>
> Signed-off-by: noah <goldstein.w.n@gmail.com>
> ---
>  benchtests/bench-strchr.c | 79 ++++++++++++++++++++++++++-------------
>  1 file changed, 53 insertions(+), 26 deletions(-)
>
> diff --git a/benchtests/bench-strchr.c b/benchtests/bench-strchr.c
> index bf493fe458..ce7ffd354d 100644
> --- a/benchtests/bench-strchr.c
> +++ b/benchtests/bench-strchr.c
> @@ -100,9 +100,12 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
>    size_t i;
>    CHAR *result;
>    CHAR *buf = (CHAR *) buf1;
> -  align &= 15;
> +  align &= 127;
>    if ((align + len) * sizeof (CHAR) >= page_size)
> -    return;
> +       {
> +         return;
> +       }
> +
>
>    for (i = 0; i < len; ++i)
>      {
> @@ -146,40 +149,64 @@ test_main (void)
>    putchar ('\n');
>
>    for (i = 1; i < 8; ++i)
> -    {
> -      do_test (0, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
> -      do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
> -    }
> +       {
> +         do_test (0, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
> +         do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
> +       }
>
>    for (i = 1; i < 8; ++i)
> -    {
> -      do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
> -      do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
> -    }
> +       {
> +         do_test (0, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
> +         do_test (i, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
> +       }
> +
> +  for (i = 1; i < 8; ++i)
> +       {
> +         do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
> +         do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
> +       }
> +
> +  for (i = 0; i < 8; ++i)
> +       {
> +         do_test (16 * i, 256, 512, SMALL_CHAR, MIDDLE_CHAR);
> +         do_test (16 * i, 256, 512, SMALL_CHAR, BIG_CHAR);
> +       }
>
>    for (i = 0; i < 32; ++i)
> -    {
> -      do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
> -      do_test (0, i, i + 1, SMALL_CHAR, BIG_CHAR);
> -    }
> +       {
> +         do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
> +         do_test (0, i, i + 1, SMALL_CHAR, BIG_CHAR);
> +       }
>
>    for (i = 1; i < 8; ++i)
> -    {
> -      do_test (0, 16 << i, 2048, 0, MIDDLE_CHAR);
> -      do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
> -    }
> +       {
> +         do_test (0, 16 << i, 2048, 0, MIDDLE_CHAR);
> +         do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
> +       }
>
>    for (i = 1; i < 8; ++i)
> -    {
> -      do_test (i, 64, 256, 0, MIDDLE_CHAR);
> -      do_test (i, 64, 256, 0, BIG_CHAR);
> -    }
> +       {
> +         do_test (0, 16 << i, 4096, 0, MIDDLE_CHAR);
> +         do_test (i, 16 << i, 4096, 0, MIDDLE_CHAR);
> +       }
> +
> +  for (i = 1; i < 8; ++i)
> +       {
> +         do_test (i, 64, 256, 0, MIDDLE_CHAR);
> +         do_test (i, 64, 256, 0, BIG_CHAR);
> +       }
> +
> +  for (i = 0; i < 8; ++i)
> +       {
> +         do_test (16 * i, 256, 512, 0, MIDDLE_CHAR);
> +         do_test (16 * i, 256, 512, 0, BIG_CHAR);
> +       }
>
>    for (i = 0; i < 32; ++i)
> -    {
> -      do_test (0, i, i + 1, 0, MIDDLE_CHAR);
> -      do_test (0, i, i + 1, 0, BIG_CHAR);
> -    }
> +       {
> +         do_test (0, i, i + 1, 0, MIDDLE_CHAR);
> +         do_test (0, i, i + 1, 0, BIG_CHAR);
> +       }
>
>    return ret;
>  }
> --
> 2.29.2
>

3 issues:

1.  Please restore the nice commit message in

https://sourceware.org/pipermail/libc-alpha/2021-February/122200.html

2. Please fix the indentation (2 spaces).
3. Please add the same tests to string/test-strchr.c.

Thanks.
diff mbox series

Patch

diff --git a/benchtests/bench-strchr.c b/benchtests/bench-strchr.c
index bf493fe458..ce7ffd354d 100644
--- a/benchtests/bench-strchr.c
+++ b/benchtests/bench-strchr.c
@@ -100,9 +100,12 @@  do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
   size_t i;
   CHAR *result;
   CHAR *buf = (CHAR *) buf1;
-  align &= 15;
+  align &= 127;
   if ((align + len) * sizeof (CHAR) >= page_size)
-    return;
+	{
+	  return;				 
+	}
+
 
   for (i = 0; i < len; ++i)
     {
@@ -146,40 +149,64 @@  test_main (void)
   putchar ('\n');
 
   for (i = 1; i < 8; ++i)
-    {
-      do_test (0, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
-      do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
-    }
+	{
+	  do_test (0, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
+	  do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR);
+	}
 
   for (i = 1; i < 8; ++i)
-    {
-      do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
-      do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
-    }
+	{
+	  do_test (0, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
+	  do_test (i, 16 << i, 4096, SMALL_CHAR, MIDDLE_CHAR);
+	}
+
+  for (i = 1; i < 8; ++i)
+	{
+	  do_test (i, 64, 256, SMALL_CHAR, MIDDLE_CHAR);
+	  do_test (i, 64, 256, SMALL_CHAR, BIG_CHAR);
+	}
+
+  for (i = 0; i < 8; ++i)
+	{
+	  do_test (16 * i, 256, 512, SMALL_CHAR, MIDDLE_CHAR);
+	  do_test (16 * i, 256, 512, SMALL_CHAR, BIG_CHAR);
+	}
 
   for (i = 0; i < 32; ++i)
-    {
-      do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
-      do_test (0, i, i + 1, SMALL_CHAR, BIG_CHAR);
-    }
+	{
+	  do_test (0, i, i + 1, SMALL_CHAR, MIDDLE_CHAR);
+	  do_test (0, i, i + 1, SMALL_CHAR, BIG_CHAR);
+	}
 
   for (i = 1; i < 8; ++i)
-    {
-      do_test (0, 16 << i, 2048, 0, MIDDLE_CHAR);
-      do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
-    }
+	{
+	  do_test (0, 16 << i, 2048, 0, MIDDLE_CHAR);
+	  do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR);
+	}
 
   for (i = 1; i < 8; ++i)
-    {
-      do_test (i, 64, 256, 0, MIDDLE_CHAR);
-      do_test (i, 64, 256, 0, BIG_CHAR);
-    }
+	{
+	  do_test (0, 16 << i, 4096, 0, MIDDLE_CHAR);
+	  do_test (i, 16 << i, 4096, 0, MIDDLE_CHAR);
+	}
+
+  for (i = 1; i < 8; ++i)
+	{
+	  do_test (i, 64, 256, 0, MIDDLE_CHAR);
+	  do_test (i, 64, 256, 0, BIG_CHAR);
+	}
+
+  for (i = 0; i < 8; ++i)
+	{
+	  do_test (16 * i, 256, 512, 0, MIDDLE_CHAR);
+	  do_test (16 * i, 256, 512, 0, BIG_CHAR);
+	}
 
   for (i = 0; i < 32; ++i)
-    {
-      do_test (0, i, i + 1, 0, MIDDLE_CHAR);
-      do_test (0, i, i + 1, 0, BIG_CHAR);
-    }
+	{
+	  do_test (0, i, i + 1, 0, MIDDLE_CHAR);
+	  do_test (0, i, i + 1, 0, BIG_CHAR);
+	}
 
   return ret;
 }