blob: c6c23b02d8ef64ff473f1f5b159cb10357aebc4f [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <ctype.h>
#include <benchmark/benchmark.h>
#include "util.h"
// Avoid optimization.
volatile int A = 'A';
volatile int a = 'a';
volatile int X = 'X';
volatile int x = 'x';
volatile int backspace = '\b';
volatile int del = '\x7f';
volatile int space = ' ';
volatile int tab = '\t';
volatile int zero = '0';
volatile int underscore = '_';
volatile int top_bit_set = 0x88;
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_y1, isalnum(A));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_y2, isalnum(a));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_y3, isalnum(zero));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_n, isalnum(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalpha_y1, isalpha(A));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalpha_y2, isalpha(a));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalpha_n, isalpha(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isascii_y, isascii(x));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isascii_n, isascii(top_bit_set));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isblank_y1, isblank(space));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isblank_y2, isblank(tab));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isblank_n, isblank(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_iscntrl_y1, iscntrl(backspace));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_iscntrl_y2, iscntrl(del));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_iscntrl_n, iscntrl(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isdigit_y, iscntrl(zero));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isdigit_n, iscntrl(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y1, isgraph(A));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y2, isgraph(a));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y3, isgraph(zero));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y4, isgraph(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_n, isgraph(space));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_islower_y, islower(x));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_islower_n, islower(X));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y1, isprint(A));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y2, isprint(a));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y3, isprint(zero));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y4, isprint(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y5, isprint(space));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_n, isprint(backspace));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_ispunct_y, ispunct(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_ispunct_n, ispunct(A));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isspace_y1, isspace(space));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isspace_y2, isspace(tab));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isspace_n, isspace(A));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isupper_y, isupper(X));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isupper_n, isupper(x));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_y1, isxdigit(zero));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_y2, isxdigit(a));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_y3, isxdigit(A));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_n, isxdigit(underscore));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toascii_y, isascii(x));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toascii_n, isascii(top_bit_set));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_tolower_y, tolower(X));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_tolower_n, tolower(x));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toupper_y, toupper(x));
BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toupper_n, toupper(X));