2013-06-11 Siddhesh Poyarekar <siddhesh@redhat.com>
+ * string/test-memccpy.c (do_one_test): Remove HP_TIMING code.
+ (do_test): Likewise.
+ * string/test-memchr.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-memcmp.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-memcpy.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-memmem.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ (do_random_tests): Likewise.
+ * string/test-memmove.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-memset.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-rawmemchr.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strcasecmp.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strcasestr.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strcat.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strchr.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strcmp.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strcpy.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-string.h: Likewise.
+ (test_init): Likewise.
+ * string/test-strlen.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strncasecmp.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strncat.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strncmp.c (do_one_test): Likewise.
+ (do_test_limit): Likewise.
+ (do_test): Likewise.
+ * string/test-strncpy.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strnlen.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strpbrk.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strrchr.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strspn.c (do_one_test): Likewise.
+ (do_test): Likewise.
+ * string/test-strstr.c (do_one_test): Likewise.
+ (do_test): Likewise.
+
* benchtests/Makefile (string-bench): Add string benchmarks.
* benchtests/bench-bcopy-ifunc.c: New file.
* benchtests/bench-bcopy.c: New file.
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute__ ((unused));
- hp_timing_t stop __attribute__ ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, c, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
for (i = len; i + align1 < page_size && i < len + 64; ++i)
s1[i] = 32 + 32 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, n %4zd, char %d, alignment %2zd/%2zd:", len, n, c, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, c, len, n);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
buf1[align + len] = seek_char;
}
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", pos, align);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) (buf1 + align), seek_char, len, result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
{
if (check_result (impl, s1, s2, len, exp_result) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2, len);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
s2[len] = align2;
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, len, exp_result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, len);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
for (i = 0, j = 1; i < len; i++, j += 23)
s1[i] = j;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
if (check_result (impl, haystack, haystack_len, needle, needle_len,
expected) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, haystack, haystack_len, needle, needle_len);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
memcpy (tmpbuf, buf1 + idx, len);
memcpy (buf1 + idx, str, len);
- if (HP_TIMING_AVAIL)
- printf ("String %s, offset %zd:", str, idx);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, buf1, BUF1PAGES * page_size, str, len, buf1 + idx);
memcpy (buf1 + idx, tmpbuf, len);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
buf1[idx + off] = ch;
}
- if (HP_TIMING_AVAIL)
- printf ("String %.*s, offset %zd:", (int) len, buf1 + idx, idx);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, buf1, BUF1PAGES * page_size, buf1 + idx, len,
buf1 + idx);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
-
memcpy (buf1 + idx, tmpbuf, len);
}
}
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
-#ifdef TEST_BCOPY
- CALL (impl, src, dst, len);
-#else
- CALL (impl, dst, src, len);
-#endif
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
for (i = 0, j = 1; i < len; i++, j += 23)
s1[i] = j;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, (char *) (buf2 + align1), s1, len);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
-#ifdef TEST_BZERO
- CALL (impl, s, n);
-#else
- CALL (impl, s, c, n);
-#endif
-
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
if (align + len > page_size)
return;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd, c %2d:", len, align, c);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) buf1 + align, c, len);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
#ifndef TEST_BZERO
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
buf1[align + len] = -seek_char;
result = (char *) (buf1 + align + pos);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", pos, align);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) (buf1 + align), seek_char, result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
else
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, exp_result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
{
if (check_result (impl, s1, s2, exp_result) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~(hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
}
s1[len1] = '\0';
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
- len1, len2, align1, align2, fail ? "fail" : "found");
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- dst[k] = '\0';
- HP_TIMING_NOW (start);
- CALL (impl, dst, src);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
for (i = 0; i < len2; i++)
s2[i] = 32 + 23 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len1, len2, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
{
s2[len2] = '\0';
do_one_test (impl, s2, s1);
}
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
{
if (check_result (impl, s, c, exp_res) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
else
result = NULLRET (buf + align + len);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment in bytes %2zd:",
- pos, align * sizeof (CHAR));
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, buf + align, seek_char, result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
{
if (check_result (impl, s1, s2, exp_result) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
s2[len + 1] = 24 + exp_result;
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, exp_result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));;
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
s1[i] = 32 + 23 * i % (max_char - 32);
s1[len] = 0;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignments in bytes %2zd/%2zd:", len, align1 * sizeof(CHAR), align2 * sizeof(CHAR));
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
#include <ifunc-impl-list.h>
#define GL(x) _##x
#define GLRO(x) _##x
-#include <hp-timing.h>
# define TEST_FUNCTION test_main ()
unsigned int seed;
size_t page_size;
-hp_timing_t _dl_hp_timing_overhead;
-
# ifndef ITERATIONS
size_t iterations = 100000;
# define ITERATIONS_OPTIONS \
if (!notall || impl->test)
#endif
-#define HP_TIMING_BEST(best_time, start, end) \
- do \
- { \
- hp_timing_t tmptime; \
- HP_TIMING_DIFF (tmptime, start + _dl_hp_timing_overhead, end); \
- if (best_time > tmptime) \
- best_time = tmptime; \
- } \
- while (0)
-
#ifndef BUF1PAGES
# define BUF1PAGES 1
#endif
error (EXIT_FAILURE, errno, "mmap failed");
if (mprotect (buf2 + page_size, page_size, PROT_NONE))
error (EXIT_FAILURE, errno, "mprotect failed");
- HP_TIMING_DIFF_INIT ();
if (do_srandom)
{
printf ("Setting seed to 0x%x\n", seed);
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
buf[align + i] = 1 + 11111 * i % MAX_CHAR;
buf[align + len] = 0;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", len, align);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (CHAR *) (buf + align), len);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
{
if (check_result (impl, s1, s2, n, exp_result) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
else
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, n, exp_result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- dst[k] = '\0';
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
for (i = 0; i < len2; i++)
s2[i] = 32 + 23 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd, N %4zd:",
- len1, len2, align1, align2, n);
-
FOR_EACH_IMPL (impl, 0)
{
s2[len2] = '\0';
do_one_test (impl, s2, s1, n);
}
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
{
if (check_result (impl, s1, s2, n, exp_result) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
{
s1 = (char*)(buf1 + page_size);
s2 = (char*)(buf2 + page_size);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd:", len, n);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, n, 0);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
-
return;
}
s1[len] = 64;
}
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, n, exp_result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
if (len >= n)
s2[n - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char*)s1, (char*)s2, n, exp_result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
return;
}
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute__ ((unused));
- hp_timing_t stop __attribute__ ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
for (i = len + 1; i + align1 < page_size && i < len + 64; ++i)
s1[i] = 32 + 32 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, n %4zd, alignment %2zd/%2zd:", len, n, align1, align2);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len, n);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, maxlen);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
buf1[align + i] = 1 + 7 * i % max_char;
buf1[align + len] = 0;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", len, align);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) (buf1 + align), maxlen, MIN (len, maxlen));
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, rej);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
}
result = STRPBRK_RESULT (s, pos);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd, rej len %2zd:", pos, align, len);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s, rej, result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
else
result = NULL;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment in bytes %2zd:", pos, align * sizeof(CHAR));
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (CHAR *) (buf + align), seek_char, result);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
ret = 1;
return;
}
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, acc);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
static void
s[i] = '\0';
}
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd, acc len %2zd:", pos, align, len);
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s, acc, pos);
-
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void
{
if (check_result (impl, s1, s2, exp_result) < 0)
return;
-
- if (HP_TIMING_AVAIL)
- {
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~(hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
- }
}
}
s1[len1] = '\0';
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
- len1, len2, align1, align2, fail ? "fail" : "found");
-
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
}
static void