xref: /aosp_15_r20/bionic/linker/linker_gnu_hash_benchmark.cpp (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * Copyright (C) 2019 The Android Open Source Project
3*8d67ca89SAndroid Build Coastguard Worker  * All rights reserved.
4*8d67ca89SAndroid Build Coastguard Worker  *
5*8d67ca89SAndroid Build Coastguard Worker  * Redistribution and use in source and binary forms, with or without
6*8d67ca89SAndroid Build Coastguard Worker  * modification, are permitted provided that the following conditions
7*8d67ca89SAndroid Build Coastguard Worker  * are met:
8*8d67ca89SAndroid Build Coastguard Worker  *  * Redistributions of source code must retain the above copyright
9*8d67ca89SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer.
10*8d67ca89SAndroid Build Coastguard Worker  *  * Redistributions in binary form must reproduce the above copyright
11*8d67ca89SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer in
12*8d67ca89SAndroid Build Coastguard Worker  *    the documentation and/or other materials provided with the
13*8d67ca89SAndroid Build Coastguard Worker  *    distribution.
14*8d67ca89SAndroid Build Coastguard Worker  *
15*8d67ca89SAndroid Build Coastguard Worker  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16*8d67ca89SAndroid Build Coastguard Worker  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17*8d67ca89SAndroid Build Coastguard Worker  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18*8d67ca89SAndroid Build Coastguard Worker  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19*8d67ca89SAndroid Build Coastguard Worker  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20*8d67ca89SAndroid Build Coastguard Worker  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21*8d67ca89SAndroid Build Coastguard Worker  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22*8d67ca89SAndroid Build Coastguard Worker  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23*8d67ca89SAndroid Build Coastguard Worker  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24*8d67ca89SAndroid Build Coastguard Worker  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25*8d67ca89SAndroid Build Coastguard Worker  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26*8d67ca89SAndroid Build Coastguard Worker  * SUCH DAMAGE.
27*8d67ca89SAndroid Build Coastguard Worker  */
28*8d67ca89SAndroid Build Coastguard Worker 
29*8d67ca89SAndroid Build Coastguard Worker #include <benchmark/benchmark.h>
30*8d67ca89SAndroid Build Coastguard Worker 
31*8d67ca89SAndroid Build Coastguard Worker #include "linker_gnu_hash.h"
32*8d67ca89SAndroid Build Coastguard Worker 
33*8d67ca89SAndroid Build Coastguard Worker // 250 symbols from the relocations of system/lib/libhwbinder.so in aosp/master, aosp_walleye.
34*8d67ca89SAndroid Build Coastguard Worker // ROT13-encoded so as not to pollute code search.
35*8d67ca89SAndroid Build Coastguard Worker static const char* const kSampleSymbolList[] = {
36*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqre8genafnpgRwEXAF0_6CnepryRCF2_wAFg3__18shapgvbaVSiEF2_RRR",
37*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqre11yvaxGbQrnguREXAF_2fcVAF0_7VOvaqre14QrnguErpvcvragRRRCiw",
38*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqre13hayvaxGbQrnguREXAF_2jcVAF0_7VOvaqre14QrnguErpvcvragRRRCiwCF5_",
39*8d67ca89SAndroid Build Coastguard Worker     "_MAX7naqebvq8uneqjner7VOvaqre13purpxFhopynffRCXi",
40*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqre12nggnpuBowrpgRCXiCiF4_CSiF3_F4_F4_R",
41*8d67ca89SAndroid Build Coastguard Worker     "_MAX7naqebvq8uneqjner9OUjOvaqre10svaqBowrpgRCXi",
42*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqre12qrgnpuBowrpgRCXi",
43*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqre11ybpnyOvaqreRi",
44*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre12erzbgrOvaqreRi",
45*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqreQ1Ri",
46*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqreQ0Ri",
47*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner9OUjOvaqre10baGenafnpgRwEXAF0_6CnepryRCF2_wAFg3__18shapgvbaVSiEF2_RRR",
48*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner9OUjOvaqreQ1Ri",
49*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner9OUjOvaqreQ0Ri",
50*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
51*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
52*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
53*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
54*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner11OcUjErsOnfrQ1Ri",
55*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner11OcUjErsOnfrQ0Ri",
56*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner11OcUjErsOnfr10baSvefgErsRi",
57*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner11OcUjErsOnfr15baYnfgFgebatErsRCXi",
58*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner11OcUjErsOnfr20baVapFgebatNggrzcgrqRwCXi",
59*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner11OcUjErsOnfrQ1Ri",
60*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner11OcUjErsOnfrQ0Ri",
61*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a16_A7naqebvq8uneqjner11OcUjErsOnfr10baSvefgErsRi",
62*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a20_A7naqebvq8uneqjner11OcUjErsOnfr15baYnfgFgebatErsRCXi",
63*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a24_A7naqebvq8uneqjner11OcUjErsOnfr20baVapFgebatNggrzcgrqRwCXi",
64*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
65*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
66*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
67*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
68*8d67ca89SAndroid Build Coastguard Worker     "_MAX7naqebvq8uneqjner7VOvaqre13purpxFhopynffRCXi",
69*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
70*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
71*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
72*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre11ybpnyOvaqreRi",
73*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre12erzbgrOvaqreRi",
74*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqreQ1Ri",
75*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqreQ0Ri",
76*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner7VOvaqreQ1Ri",
77*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner7VOvaqreQ0Ri",
78*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
79*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
80*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
81*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
82*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
83*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
84*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
85*8d67ca89SAndroid Build Coastguard Worker     "_MAX7naqebvq8uneqjner7VOvaqre13purpxFhopynffRCXi",
86*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
87*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
88*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
89*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre11ybpnyOvaqreRi",
90*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre12erzbgrOvaqreRi",
91*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqreQ1Ri",
92*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqreQ0Ri",
93*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner7VOvaqreQ1Ri",
94*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner7VOvaqreQ0Ri",
95*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
96*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
97*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
98*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
99*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre8genafnpgRwEXAF0_6CnepryRCF2_wAFg3__18shapgvbaVSiEF2_RRR",
100*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre11yvaxGbQrnguREXAF_2fcVAF0_7VOvaqre14QrnguErpvcvragRRRCiw",
101*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre13hayvaxGbQrnguREXAF_2jcVAF0_7VOvaqre14QrnguErpvcvragRRRCiwCF5_",
102*8d67ca89SAndroid Build Coastguard Worker     "_MAX7naqebvq8uneqjner7VOvaqre13purpxFhopynffRCXi",
103*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre12nggnpuBowrpgRCXiCiF4_CSiF3_F4_F4_R",
104*8d67ca89SAndroid Build Coastguard Worker     "_MAX7naqebvq8uneqjner10OcUjOvaqre10svaqBowrpgRCXi",
105*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre12qrgnpuBowrpgRCXi",
106*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre11ybpnyOvaqreRi",
107*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre12erzbgrOvaqreRi",
108*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqreQ1Ri",
109*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqreQ0Ri",
110*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre10baSvefgErsRi",
111*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre15baYnfgFgebatErsRCXi",
112*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10OcUjOvaqre20baVapFgebatNggrzcgrqRwCXi",
113*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner10OcUjOvaqreQ1Ri",
114*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner10OcUjOvaqreQ0Ri",
115*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a16_A7naqebvq8uneqjner10OcUjOvaqre10baSvefgErsRi",
116*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a20_A7naqebvq8uneqjner10OcUjOvaqre15baYnfgFgebatErsRCXi",
117*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a24_A7naqebvq8uneqjner10OcUjOvaqre20baVapFgebatNggrzcgrqRwCXi",
118*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
119*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
120*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
121*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
122*8d67ca89SAndroid Build Coastguard Worker     "_MAX7naqebvq8uneqjner7VOvaqre13purpxFhopynffRCXi",
123*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
124*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
125*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
126*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre11ybpnyOvaqreRi",
127*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqre12erzbgrOvaqreRi",
128*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqreQ1Ri",
129*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner7VOvaqreQ0Ri",
130*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner7VOvaqreQ1Ri",
131*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner7VOvaqreQ0Ri",
132*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
133*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
134*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
135*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
136*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchgQ2Ri",
137*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchgQ0Ri",
138*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg5cevagRCXpw",
139*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg10zbirVaqragRv",
140*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg10chfuOhaqyrRi",
141*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg9cbcOhaqyrRi",
142*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
143*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
144*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
145*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
146*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
147*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10VVagresnprQ1Ri",
148*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10VVagresnprQ0Ri",
149*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
150*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner10VVagresnprQ1Ri",
151*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner10VVagresnprQ0Ri",
152*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
153*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
154*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
155*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
156*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri",
157*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri",
158*8d67ca89SAndroid Build Coastguard Worker     "_MGua8_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri",
159*8d67ca89SAndroid Build Coastguard Worker     "_MGua8_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri",
160*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri",
161*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri",
162*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri",
163*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri",
164*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri",
165*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri",
166*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri",
167*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri",
168*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri",
169*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri",
170*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR",
171*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6frgohsRCpv",
172*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4flapRi",
173*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fubjznalpRi",
174*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kftrgaRCpv",
175*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5hsybjRi",
176*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kfchgaRCXpv",
177*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner12CebprffFgngrQ1Ri",
178*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner12CebprffFgngrQ0Ri",
179*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner12CebprffFgngrQ1Ri",
180*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq8uneqjner12CebprffFgngrQ0Ri",
181*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
182*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
183*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
184*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
185*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6Guernq3ehaRCXpvw",
186*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6Guernq11erdhrfgRkvgRi",
187*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6Guernq10ernqlGbEhaRi",
188*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
189*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
190*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
191*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
192*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6GuernqQ1Ri",
193*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6GuernqQ0Ri",
194*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6Guernq3ehaRCXpvw",
195*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6Guernq11erdhrfgRkvgRi",
196*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq6Guernq10ernqlGbEhaRi",
197*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
198*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq6GuernqQ1Ri",
199*8d67ca89SAndroid Build Coastguard Worker     "_MGi0_a12_A7naqebvq6GuernqQ0Ri",
200*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr10baSvefgErsRi",
201*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr15baYnfgFgebatErsRCXi",
202*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr20baVapFgebatNggrzcgrqRwCXi",
203*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq7ErsOnfr13baYnfgJrnxErsRCXi",
204*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchgQ2Ri",
205*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg5cevagRCXpw",
206*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg10zbirVaqragRv",
207*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg10chfuOhaqyrRi",
208*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg9cbcOhaqyrRi",
209*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchgQ2Ri",
210*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg5cevagRCXpw",
211*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg10zbirVaqragRv",
212*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg10chfuOhaqyrRi",
213*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg9cbcOhaqyrRi",
214*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10GrkgBhgchgQ2Ri",
215*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner10GrkgBhgchgQ0Ri",
216*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
217*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
218*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
219*8d67ca89SAndroid Build Coastguard Worker     "__pkn_cher_iveghny",
220*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner9OUjOvaqreR",
221*8d67ca89SAndroid Build Coastguard Worker     "_MGPA7naqebvq8uneqjner9OUjOvaqreR0_AF0_7VOvaqreR",
222*8d67ca89SAndroid Build Coastguard Worker     "_MGPA7naqebvq8uneqjner9OUjOvaqreR0_AF0_7VOvaqreR",
223*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner9OUjOvaqreR",
224*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner11OcUjErsOnfrR",
225*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner11OcUjErsOnfrR",
226*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner7VOvaqreR",
227*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner7VOvaqreR",
228*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10OcUjOvaqreR",
229*8d67ca89SAndroid Build Coastguard Worker     "_MGPA7naqebvq8uneqjner10OcUjOvaqreR0_AF0_7VOvaqreR",
230*8d67ca89SAndroid Build Coastguard Worker     "_MGPA7naqebvq8uneqjner10OcUjOvaqreR0_AF0_7VOvaqreR",
231*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10OcUjOvaqreR",
232*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10VVagresnprR",
233*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10VVagresnprR",
234*8d67ca89SAndroid Build Coastguard Worker     "_MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR",
235*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR",
236*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR",
237*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR",
238*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR8_AF_13onfvp_bfgernzVpF2_RR",
239*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR8_AF_13onfvp_bfgernzVpF2_RR",
240*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR",
241*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR",
242*8d67ca89SAndroid Build Coastguard Worker     "_MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR",
243*8d67ca89SAndroid Build Coastguard Worker     "_MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR",
244*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner12CebprffFgngrR",
245*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner12CebprffFgngrR",
246*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10CbbyGuernqR",
247*8d67ca89SAndroid Build Coastguard Worker     "_MGPA7naqebvq8uneqjner10CbbyGuernqR0_AF_6GuernqR",
248*8d67ca89SAndroid Build Coastguard Worker     "_MGPA7naqebvq8uneqjner10CbbyGuernqR0_AF_6GuernqR",
249*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10CbbyGuernqR",
250*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner9OUjOvaqreR",
251*8d67ca89SAndroid Build Coastguard Worker     "__fgnpx_pux_thneq",
252*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner11OcUjErsOnfrR",
253*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRRR",
254*8d67ca89SAndroid Build Coastguard Worker     "_MGPA7naqebvq8uneqjner10OcUjOvaqreR0_AF0_7VOvaqreR",
255*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10OcUjOvaqreR",
256*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRRR",
257*8d67ca89SAndroid Build Coastguard Worker     "_MGGA7naqebvq8uneqjner10OcUjOvaqreR",
258*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR",
259*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg16guernqQrfgehpgbeRCi",
260*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner18OhssrerqGrkgBhgchgR",
261*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner12tGrkgOhssrefR",
262*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrR",
263*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner14VCPGuernqFgngr16guernqQrfgehpgbeRCi",
264*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner14VCPGuernqFgngr10serrOhssreRCAF0_6CnepryRCXuwCXlwCi",
265*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner18gur_pbagrkg_bowrpgR",
266*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq9PnyyFgnpx18trgPheeragVagreanyRv",
267*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq9PnyyFgnpx16ybtFgnpxVagreanyRCXpCXF0_19naqebvq_YbtCevbevgl",
268*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRRR",
269*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR",
270*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR",
271*8d67ca89SAndroid Build Coastguard Worker     "_MFg7abguebj",
272*8d67ca89SAndroid Build Coastguard Worker     "_MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR",
273*8d67ca89SAndroid Build Coastguard Worker     "_MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR",
274*8d67ca89SAndroid Build Coastguard Worker     "_MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR",
275*8d67ca89SAndroid Build Coastguard Worker     "_MAFg3__15pglcrVpR2vqR",
276*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner13tCebprffZhgrkR",
277*8d67ca89SAndroid Build Coastguard Worker     "_MA7naqebvq8uneqjner8tCebprffR",
278*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner12CebprffFgngrR",
279*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRRR",
280*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRRR",
281*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner10CbbyGuernqR",
282*8d67ca89SAndroid Build Coastguard Worker     "_MGGA7naqebvq8uneqjner12CebprffFgngrR",
283*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq6IrpgbeVvRR",
284*8d67ca89SAndroid Build Coastguard Worker     "_MGIA7naqebvq8uneqjner13YbtGrkgBhgchgR",
285*8d67ca89SAndroid Build Coastguard Worker };
286*8d67ca89SAndroid Build Coastguard Worker 
BM_gnu_hash_simple(benchmark::State & state)287*8d67ca89SAndroid Build Coastguard Worker static void BM_gnu_hash_simple(benchmark::State& state) {
288*8d67ca89SAndroid Build Coastguard Worker   for (auto _ : state) {
289*8d67ca89SAndroid Build Coastguard Worker     for (const char* sym_name : kSampleSymbolList) {
290*8d67ca89SAndroid Build Coastguard Worker       benchmark::DoNotOptimize(calculate_gnu_hash_simple(sym_name));
291*8d67ca89SAndroid Build Coastguard Worker     }
292*8d67ca89SAndroid Build Coastguard Worker   }
293*8d67ca89SAndroid Build Coastguard Worker }
294*8d67ca89SAndroid Build Coastguard Worker 
295*8d67ca89SAndroid Build Coastguard Worker BENCHMARK(BM_gnu_hash_simple);
296*8d67ca89SAndroid Build Coastguard Worker 
297*8d67ca89SAndroid Build Coastguard Worker #if USE_GNU_HASH_NEON
298*8d67ca89SAndroid Build Coastguard Worker 
BM_gnu_hash_neon(benchmark::State & state)299*8d67ca89SAndroid Build Coastguard Worker static void BM_gnu_hash_neon(benchmark::State& state) {
300*8d67ca89SAndroid Build Coastguard Worker   for (auto _ : state) {
301*8d67ca89SAndroid Build Coastguard Worker     for (const char* sym_name : kSampleSymbolList) {
302*8d67ca89SAndroid Build Coastguard Worker       benchmark::DoNotOptimize(calculate_gnu_hash_neon(sym_name));
303*8d67ca89SAndroid Build Coastguard Worker     }
304*8d67ca89SAndroid Build Coastguard Worker   }
305*8d67ca89SAndroid Build Coastguard Worker }
306*8d67ca89SAndroid Build Coastguard Worker 
307*8d67ca89SAndroid Build Coastguard Worker BENCHMARK(BM_gnu_hash_neon);
308*8d67ca89SAndroid Build Coastguard Worker 
309*8d67ca89SAndroid Build Coastguard Worker #endif  // USE_GNU_HASH_NEON
310*8d67ca89SAndroid Build Coastguard Worker 
311*8d67ca89SAndroid Build Coastguard Worker BENCHMARK_MAIN();
312