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