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