From a00e2fe3dfd3a4e218ba6c1c3445ee68322ddda9 Mon Sep 17 00:00:00 2001 From: noah Date: Wed, 3 Feb 2021 00:39:00 -0500 Subject: [PATCH 2/2] strchr: Add additional benchmarks and tests This patch adds additional benchmarks and tests for string size of 4096 and several benchmarks for string size 256 with different alignments. --- benchtests/bench-strchr.c | 26 +++++++++++++++++++++++++- string/test-strchr.c | 26 +++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/benchtests/bench-strchr.c b/benchtests/bench-strchr.c index bf493fe458..4ce2369d9b 100644 --- a/benchtests/bench-strchr.c +++ b/benchtests/bench-strchr.c @@ -100,7 +100,7 @@ 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; @@ -151,12 +151,24 @@ test_main (void) do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR); } + for (i = 1; i < 8; ++i) + { + 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); @@ -169,12 +181,24 @@ test_main (void) do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR); } + for (i = 1; i < 8; ++i) + { + 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); diff --git a/string/test-strchr.c b/string/test-strchr.c index 5b6022746c..6c8ca54a7d 100644 --- a/string/test-strchr.c +++ b/string/test-strchr.c @@ -130,7 +130,7 @@ 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; @@ -259,12 +259,24 @@ test_main (void) do_test (i, 16 << i, 2048, SMALL_CHAR, MIDDLE_CHAR); } + for (i = 1; i < 8; ++i) + { + 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); @@ -277,12 +289,24 @@ test_main (void) do_test (i, 16 << i, 2048, 0, MIDDLE_CHAR); } + for (i = 1; i < 8; ++i) + { + 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); -- 2.29.2