• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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