xref: /aosp_15_r20/external/harfbuzz_ng/perf/benchmark-ot.cc (revision 2d1272b857b1f7575e6e246373e1cb218663db8a)
1 #include "hb-benchmark.hh"
2 
BM_hb_ot_tags_from_script_and_language(benchmark::State & state,hb_script_t script,const char * language_str)3 static void BM_hb_ot_tags_from_script_and_language (benchmark::State& state,
4 						    hb_script_t script,
5 						    const char *language_str) {
6 
7   hb_language_t language = hb_language_from_string (language_str, -1);
8 
9   for (auto _ : state)
10   {
11     hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT];
12     unsigned script_count = HB_OT_MAX_TAGS_PER_SCRIPT;
13 
14     hb_tag_t language_tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
15     unsigned language_count = HB_OT_MAX_TAGS_PER_LANGUAGE;
16 
17     hb_ot_tags_from_script_and_language (script,
18 					 language,
19 					 &script_count /* IN/OUT */,
20 					 script_tags /* OUT */,
21 					 &language_count /* IN/OUT */,
22 					 language_tags /* OUT */);
23   }
24 }
25 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_abcd, HB_SCRIPT_COMMON, "zh_abcd");
26 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_hans, HB_SCRIPT_COMMON, "zh_hans");
27 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abcd, HB_SCRIPT_COMMON, "ab_abcd");
28 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abc, HB_SCRIPT_COMMON, "ab_abc");
29 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcdef_XY, HB_SCRIPT_COMMON, "abcdef_XY");
30 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcd_XY, HB_SCRIPT_COMMON, "abcd_XY");
31 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON cxy_CN, HB_SCRIPT_COMMON, "cxy_CN");
32 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON exy_CN, HB_SCRIPT_COMMON, "exy_CN");
33 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_CN, HB_SCRIPT_COMMON, "zh_CN");
34 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON en_US, HB_SCRIPT_COMMON, "en_US");
35 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN en_US, HB_SCRIPT_LATIN, "en_US");
36 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON none, HB_SCRIPT_LATIN, nullptr);
37 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN none, HB_SCRIPT_LATIN, nullptr);
38 
39 BENCHMARK_MAIN();
40