blob: 4a18a842022b477184fdfc4a80d6a8a1a8a7252c [file] [log] [blame]
SJW173c7e92020-03-16 08:44:47 -05001// Copyright 2019 The Clspv Authors. All rights reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef CLSPV_LIB_BUILTINSMAP_INC_
16#define CLSPV_LIB_BUILTINSMAP_INC_
17
18////////////////////////////////////////////////////////////////////////////////
19// utilities for const char* map keys
20struct cstr_hash {
21#define FNV_PRIME_64 1099511628211ULL
22#define FNV_OFFSET_64 14695981039346656037ULL
23 // hash function for const char* hashmap based on FNV-1a
24 std::size_t operator()(const char *cstr) const {
25 std::size_t hash = FNV_OFFSET_64;
26 for (char c = *cstr; c != '\0'; c = *(++cstr)) {
27 hash ^= static_cast<std::size_t>(c);
28 hash *= static_cast<std::size_t>(FNV_PRIME_64);
29 }
30 return hash;
31 }
32};
33
34struct cstr_eq {
35 // Returns true if the two C-style strings are equal. Assumes they are both
36 // null-terminated.
37 bool operator()(const char *a, const char *b) const {
38 return strcmp(a, b) == 0;
39 }
40};
41
42// static map of builtin function names
43static std::unordered_map<const char *, Builtins::BuiltinType, cstr_hash,
44 cstr_eq>
45 s_func_map = {
46
47 // Async
48 {"async_work_group_copy", Builtins::kAsyncWorkGroupCopy},
49 {"async_work_group_strided_copy", Builtins::kAsyncWorkGroupStridedCopy},
50 {"wait_group_events", Builtins::kWaitGroupEvents},
51 {"prefetch", Builtins::kPrefetch},
52
53 // Atomic
54 {"atomic_init", Builtins::kAtomicInit},
55 {"atomic_add", Builtins::kAtomicAdd},
56 {"atom_add", Builtins::kAtomicAdd},
57 {"atomic_sub", Builtins::kAtomicSub},
58 {"atom_sub", Builtins::kAtomicSub},
59 {"atomic_inc", Builtins::kAtomicInc},
60 {"atom_inc", Builtins::kAtomicInc},
61 {"atomic_dec", Builtins::kAtomicDec},
62 {"atom_dec", Builtins::kAtomicDec},
63 {"atomic_xchg", Builtins::kAtomicXchg},
64 {"atom_xchg", Builtins::kAtomicXchg},
65 {"atomic_cmpxchg", Builtins::kAtomicCmpxchg},
66 {"atom_cmpxchg", Builtins::kAtomicCmpxchg},
67 {"atomic_min", Builtins::kAtomicMin},
68 {"atom_min", Builtins::kAtomicMin},
69 {"atomic_max", Builtins::kAtomicMax},
70 {"atom_max", Builtins::kAtomicMax},
71 {"atomic_and", Builtins::kAtomicAnd},
72 {"atom_and", Builtins::kAtomicAnd},
73 {"atomic_or", Builtins::kAtomicOr},
74 {"atom_or", Builtins::kAtomicOr},
75 {"atomic_xor", Builtins::kAtomicXor},
76 {"atom_xor", Builtins::kAtomicXor},
77 {"atomic_work_item_fence", Builtins::kAtomicWorkItemFence},
78 {"atomic_store", Builtins::kAtomicStore},
79 {"atomic_store_explicit", Builtins::kAtomicStoreExplicit},
80 {"atomic_load", Builtins::kAtomicLoad},
81 {"atomic_load_explicit", Builtins::kAtomicLoadExplicit},
82 {"atomic_exchange", Builtins::kAtomicExchange},
83 {"atomic_exchange_explicit", Builtins::kAtomicExchangeExplicit},
84 {"atomic_compare_exchange_strong",
85 Builtins::kAtomicCompareExchangeStrong},
86 {"atomic_compare_exchange_strong_explicit",
87 Builtins::kAtomicCompareExchangeStrongExplicit},
88 {"atomic_compare_exchange_weak", Builtins::kAtomicCompareExchangeWeak},
89 {"atomic_compare_exchange_weak_explicit",
90 Builtins::kAtomicCompareExchangeWeakExplicit},
91 {"atomic_fetch_key", Builtins::kAtomicFetchKey},
92 {"atomic_fetch_key_explicit", Builtins::kAtomicFetchKeyExplicit},
93 {"atomic_flag_test_and_set", Builtins::kAtomicFlagTestAndSet},
94 {"atomic_flag_test_and_set_explicit",
95 Builtins::kAtomicFlagTestAndSetExplicit},
96 {"atomic_flag_clear", Builtins::kAtomicFlagClear},
97 {"atomic_flag_clear_explicit", Builtins::kAtomicFlagClearExplicit},
98
99 // Common
100 {"degrees", Builtins::kDegrees},
101 {"mix", Builtins::kMix},
102 {"radians", Builtins::kRadians},
103 {"sign", Builtins::kSign},
104 {"smoothstep", Builtins::kSmoothstep},
105 {"step", Builtins::kStep},
106
107 // Convert
108 {"convert_char", Builtins::kConvert},
109 {"convert_char_rte", Builtins::kConvert},
110 {"convert_char_rtz", Builtins::kConvert},
111 {"convert_char_rtp", Builtins::kConvert},
112 {"convert_char_rtn", Builtins::kConvert},
113 {"convert_char_sat", Builtins::kConvert},
114 {"convert_char_sat_rte", Builtins::kConvert},
115 {"convert_char_sat_rtz", Builtins::kConvert},
116 {"convert_char_sat_rtp", Builtins::kConvert},
117 {"convert_char_sat_rtn", Builtins::kConvert},
118 {"convert_char", Builtins::kConvert},
119 {"convert_char_rte", Builtins::kConvert},
120 {"convert_char_rtz", Builtins::kConvert},
121 {"convert_char_rtp", Builtins::kConvert},
122 {"convert_char_rtn", Builtins::kConvert},
123 {"convert_char_sat", Builtins::kConvert},
124 {"convert_char_sat_rte", Builtins::kConvert},
125 {"convert_char_sat_rtz", Builtins::kConvert},
126 {"convert_char_sat_rtp", Builtins::kConvert},
127 {"convert_char_sat_rtn", Builtins::kConvert},
128 {"convert_char2", Builtins::kConvert},
129 {"convert_char2_rte", Builtins::kConvert},
130 {"convert_char2_rtz", Builtins::kConvert},
131 {"convert_char2_rtp", Builtins::kConvert},
132 {"convert_char2_rtn", Builtins::kConvert},
133 {"convert_char2_sat", Builtins::kConvert},
134 {"convert_char2_sat_rte", Builtins::kConvert},
135 {"convert_char2_sat_rtz", Builtins::kConvert},
136 {"convert_char2_sat_rtp", Builtins::kConvert},
137 {"convert_char2_sat_rtn", Builtins::kConvert},
138 {"convert_char3", Builtins::kConvert},
139 {"convert_char3_rte", Builtins::kConvert},
140 {"convert_char3_rtz", Builtins::kConvert},
141 {"convert_char3_rtp", Builtins::kConvert},
142 {"convert_char3_rtn", Builtins::kConvert},
143 {"convert_char3_sat", Builtins::kConvert},
144 {"convert_char3_sat_rte", Builtins::kConvert},
145 {"convert_char3_sat_rtz", Builtins::kConvert},
146 {"convert_char3_sat_rtp", Builtins::kConvert},
147 {"convert_char3_sat_rtn", Builtins::kConvert},
148 {"convert_char4", Builtins::kConvert},
149 {"convert_char4_rte", Builtins::kConvert},
150 {"convert_char4_rtz", Builtins::kConvert},
151 {"convert_char4_rtp", Builtins::kConvert},
152 {"convert_char4_rtn", Builtins::kConvert},
153 {"convert_char4_sat", Builtins::kConvert},
154 {"convert_char4_sat_rte", Builtins::kConvert},
155 {"convert_char4_sat_rtz", Builtins::kConvert},
156 {"convert_char4_sat_rtp", Builtins::kConvert},
157 {"convert_char4_sat_rtn", Builtins::kConvert},
158 {"convert_char8", Builtins::kConvert},
159 {"convert_char8_rte", Builtins::kConvert},
160 {"convert_char8_rtz", Builtins::kConvert},
161 {"convert_char8_rtp", Builtins::kConvert},
162 {"convert_char8_rtn", Builtins::kConvert},
163 {"convert_char8_sat", Builtins::kConvert},
164 {"convert_char8_sat_rte", Builtins::kConvert},
165 {"convert_char8_sat_rtz", Builtins::kConvert},
166 {"convert_char8_sat_rtp", Builtins::kConvert},
167 {"convert_char8_sat_rtn", Builtins::kConvert},
168 {"convert_char16", Builtins::kConvert},
169 {"convert_char16_rte", Builtins::kConvert},
170 {"convert_char16_rtz", Builtins::kConvert},
171 {"convert_char16_rtp", Builtins::kConvert},
172 {"convert_char16_rtn", Builtins::kConvert},
173 {"convert_char16_sat", Builtins::kConvert},
174 {"convert_char16_sat_rte", Builtins::kConvert},
175 {"convert_char16_sat_rtz", Builtins::kConvert},
176 {"convert_char16_sat_rtp", Builtins::kConvert},
177 {"convert_char16_sat_rtn", Builtins::kConvert},
178 {"convert_uchar", Builtins::kConvert},
179 {"convert_uchar_rte", Builtins::kConvert},
180 {"convert_uchar_rtz", Builtins::kConvert},
181 {"convert_uchar_rtp", Builtins::kConvert},
182 {"convert_uchar_rtn", Builtins::kConvert},
183 {"convert_uchar_sat", Builtins::kConvert},
184 {"convert_uchar_sat_rte", Builtins::kConvert},
185 {"convert_uchar_sat_rtz", Builtins::kConvert},
186 {"convert_uchar_sat_rtp", Builtins::kConvert},
187 {"convert_uchar_sat_rtn", Builtins::kConvert},
188 {"convert_uchar", Builtins::kConvert},
189 {"convert_uchar_rte", Builtins::kConvert},
190 {"convert_uchar_rtz", Builtins::kConvert},
191 {"convert_uchar_rtp", Builtins::kConvert},
192 {"convert_uchar_rtn", Builtins::kConvert},
193 {"convert_uchar_sat", Builtins::kConvert},
194 {"convert_uchar_sat_rte", Builtins::kConvert},
195 {"convert_uchar_sat_rtz", Builtins::kConvert},
196 {"convert_uchar_sat_rtp", Builtins::kConvert},
197 {"convert_uchar_sat_rtn", Builtins::kConvert},
198 {"convert_uchar2", Builtins::kConvert},
199 {"convert_uchar2_rte", Builtins::kConvert},
200 {"convert_uchar2_rtz", Builtins::kConvert},
201 {"convert_uchar2_rtp", Builtins::kConvert},
202 {"convert_uchar2_rtn", Builtins::kConvert},
203 {"convert_uchar2_sat", Builtins::kConvert},
204 {"convert_uchar2_sat_rte", Builtins::kConvert},
205 {"convert_uchar2_sat_rtz", Builtins::kConvert},
206 {"convert_uchar2_sat_rtp", Builtins::kConvert},
207 {"convert_uchar2_sat_rtn", Builtins::kConvert},
208 {"convert_uchar3", Builtins::kConvert},
209 {"convert_uchar3_rte", Builtins::kConvert},
210 {"convert_uchar3_rtz", Builtins::kConvert},
211 {"convert_uchar3_rtp", Builtins::kConvert},
212 {"convert_uchar3_rtn", Builtins::kConvert},
213 {"convert_uchar3_sat", Builtins::kConvert},
214 {"convert_uchar3_sat_rte", Builtins::kConvert},
215 {"convert_uchar3_sat_rtz", Builtins::kConvert},
216 {"convert_uchar3_sat_rtp", Builtins::kConvert},
217 {"convert_uchar3_sat_rtn", Builtins::kConvert},
218 {"convert_uchar4", Builtins::kConvert},
219 {"convert_uchar4_rte", Builtins::kConvert},
220 {"convert_uchar4_rtz", Builtins::kConvert},
221 {"convert_uchar4_rtp", Builtins::kConvert},
222 {"convert_uchar4_rtn", Builtins::kConvert},
223 {"convert_uchar4_sat", Builtins::kConvert},
224 {"convert_uchar4_sat_rte", Builtins::kConvert},
225 {"convert_uchar4_sat_rtz", Builtins::kConvert},
226 {"convert_uchar4_sat_rtp", Builtins::kConvert},
227 {"convert_uchar4_sat_rtn", Builtins::kConvert},
228 {"convert_uchar8", Builtins::kConvert},
229 {"convert_uchar8_rte", Builtins::kConvert},
230 {"convert_uchar8_rtz", Builtins::kConvert},
231 {"convert_uchar8_rtp", Builtins::kConvert},
232 {"convert_uchar8_rtn", Builtins::kConvert},
233 {"convert_uchar8_sat", Builtins::kConvert},
234 {"convert_uchar8_sat_rte", Builtins::kConvert},
235 {"convert_uchar8_sat_rtz", Builtins::kConvert},
236 {"convert_uchar8_sat_rtp", Builtins::kConvert},
237 {"convert_uchar8_sat_rtn", Builtins::kConvert},
238 {"convert_uchar16", Builtins::kConvert},
239 {"convert_uchar16_rte", Builtins::kConvert},
240 {"convert_uchar16_rtz", Builtins::kConvert},
241 {"convert_uchar16_rtp", Builtins::kConvert},
242 {"convert_uchar16_rtn", Builtins::kConvert},
243 {"convert_uchar16_sat", Builtins::kConvert},
244 {"convert_uchar16_sat_rte", Builtins::kConvert},
245 {"convert_uchar16_sat_rtz", Builtins::kConvert},
246 {"convert_uchar16_sat_rtp", Builtins::kConvert},
247 {"convert_uchar16_sat_rtn", Builtins::kConvert},
248 {"convert_short", Builtins::kConvert},
249 {"convert_short_rte", Builtins::kConvert},
250 {"convert_short_rtz", Builtins::kConvert},
251 {"convert_short_rtp", Builtins::kConvert},
252 {"convert_short_rtn", Builtins::kConvert},
253 {"convert_short_sat", Builtins::kConvert},
254 {"convert_short_sat_rte", Builtins::kConvert},
255 {"convert_short_sat_rtz", Builtins::kConvert},
256 {"convert_short_sat_rtp", Builtins::kConvert},
257 {"convert_short_sat_rtn", Builtins::kConvert},
258 {"convert_short", Builtins::kConvert},
259 {"convert_short_rte", Builtins::kConvert},
260 {"convert_short_rtz", Builtins::kConvert},
261 {"convert_short_rtp", Builtins::kConvert},
262 {"convert_short_rtn", Builtins::kConvert},
263 {"convert_short_sat", Builtins::kConvert},
264 {"convert_short_sat_rte", Builtins::kConvert},
265 {"convert_short_sat_rtz", Builtins::kConvert},
266 {"convert_short_sat_rtp", Builtins::kConvert},
267 {"convert_short_sat_rtn", Builtins::kConvert},
268 {"convert_short2", Builtins::kConvert},
269 {"convert_short2_rte", Builtins::kConvert},
270 {"convert_short2_rtz", Builtins::kConvert},
271 {"convert_short2_rtp", Builtins::kConvert},
272 {"convert_short2_rtn", Builtins::kConvert},
273 {"convert_short2_sat", Builtins::kConvert},
274 {"convert_short2_sat_rte", Builtins::kConvert},
275 {"convert_short2_sat_rtz", Builtins::kConvert},
276 {"convert_short2_sat_rtp", Builtins::kConvert},
277 {"convert_short2_sat_rtn", Builtins::kConvert},
278 {"convert_short3", Builtins::kConvert},
279 {"convert_short3_rte", Builtins::kConvert},
280 {"convert_short3_rtz", Builtins::kConvert},
281 {"convert_short3_rtp", Builtins::kConvert},
282 {"convert_short3_rtn", Builtins::kConvert},
283 {"convert_short3_sat", Builtins::kConvert},
284 {"convert_short3_sat_rte", Builtins::kConvert},
285 {"convert_short3_sat_rtz", Builtins::kConvert},
286 {"convert_short3_sat_rtp", Builtins::kConvert},
287 {"convert_short3_sat_rtn", Builtins::kConvert},
288 {"convert_short4", Builtins::kConvert},
289 {"convert_short4_rte", Builtins::kConvert},
290 {"convert_short4_rtz", Builtins::kConvert},
291 {"convert_short4_rtp", Builtins::kConvert},
292 {"convert_short4_rtn", Builtins::kConvert},
293 {"convert_short4_sat", Builtins::kConvert},
294 {"convert_short4_sat_rte", Builtins::kConvert},
295 {"convert_short4_sat_rtz", Builtins::kConvert},
296 {"convert_short4_sat_rtp", Builtins::kConvert},
297 {"convert_short4_sat_rtn", Builtins::kConvert},
298 {"convert_short8", Builtins::kConvert},
299 {"convert_short8_rte", Builtins::kConvert},
300 {"convert_short8_rtz", Builtins::kConvert},
301 {"convert_short8_rtp", Builtins::kConvert},
302 {"convert_short8_rtn", Builtins::kConvert},
303 {"convert_short8_sat", Builtins::kConvert},
304 {"convert_short8_sat_rte", Builtins::kConvert},
305 {"convert_short8_sat_rtz", Builtins::kConvert},
306 {"convert_short8_sat_rtp", Builtins::kConvert},
307 {"convert_short8_sat_rtn", Builtins::kConvert},
308 {"convert_short16", Builtins::kConvert},
309 {"convert_short16_rte", Builtins::kConvert},
310 {"convert_short16_rtz", Builtins::kConvert},
311 {"convert_short16_rtp", Builtins::kConvert},
312 {"convert_short16_rtn", Builtins::kConvert},
313 {"convert_short16_sat", Builtins::kConvert},
314 {"convert_short16_sat_rte", Builtins::kConvert},
315 {"convert_short16_sat_rtz", Builtins::kConvert},
316 {"convert_short16_sat_rtp", Builtins::kConvert},
317 {"convert_short16_sat_rtn", Builtins::kConvert},
318 {"convert_ushort", Builtins::kConvert},
319 {"convert_ushort_rte", Builtins::kConvert},
320 {"convert_ushort_rtz", Builtins::kConvert},
321 {"convert_ushort_rtp", Builtins::kConvert},
322 {"convert_ushort_rtn", Builtins::kConvert},
323 {"convert_ushort_sat", Builtins::kConvert},
324 {"convert_ushort_sat_rte", Builtins::kConvert},
325 {"convert_ushort_sat_rtz", Builtins::kConvert},
326 {"convert_ushort_sat_rtp", Builtins::kConvert},
327 {"convert_ushort_sat_rtn", Builtins::kConvert},
328 {"convert_ushort", Builtins::kConvert},
329 {"convert_ushort_rte", Builtins::kConvert},
330 {"convert_ushort_rtz", Builtins::kConvert},
331 {"convert_ushort_rtp", Builtins::kConvert},
332 {"convert_ushort_rtn", Builtins::kConvert},
333 {"convert_ushort_sat", Builtins::kConvert},
334 {"convert_ushort_sat_rte", Builtins::kConvert},
335 {"convert_ushort_sat_rtz", Builtins::kConvert},
336 {"convert_ushort_sat_rtp", Builtins::kConvert},
337 {"convert_ushort_sat_rtn", Builtins::kConvert},
338 {"convert_ushort2", Builtins::kConvert},
339 {"convert_ushort2_rte", Builtins::kConvert},
340 {"convert_ushort2_rtz", Builtins::kConvert},
341 {"convert_ushort2_rtp", Builtins::kConvert},
342 {"convert_ushort2_rtn", Builtins::kConvert},
343 {"convert_ushort2_sat", Builtins::kConvert},
344 {"convert_ushort2_sat_rte", Builtins::kConvert},
345 {"convert_ushort2_sat_rtz", Builtins::kConvert},
346 {"convert_ushort2_sat_rtp", Builtins::kConvert},
347 {"convert_ushort2_sat_rtn", Builtins::kConvert},
348 {"convert_ushort3", Builtins::kConvert},
349 {"convert_ushort3_rte", Builtins::kConvert},
350 {"convert_ushort3_rtz", Builtins::kConvert},
351 {"convert_ushort3_rtp", Builtins::kConvert},
352 {"convert_ushort3_rtn", Builtins::kConvert},
353 {"convert_ushort3_sat", Builtins::kConvert},
354 {"convert_ushort3_sat_rte", Builtins::kConvert},
355 {"convert_ushort3_sat_rtz", Builtins::kConvert},
356 {"convert_ushort3_sat_rtp", Builtins::kConvert},
357 {"convert_ushort3_sat_rtn", Builtins::kConvert},
358 {"convert_ushort4", Builtins::kConvert},
359 {"convert_ushort4_rte", Builtins::kConvert},
360 {"convert_ushort4_rtz", Builtins::kConvert},
361 {"convert_ushort4_rtp", Builtins::kConvert},
362 {"convert_ushort4_rtn", Builtins::kConvert},
363 {"convert_ushort4_sat", Builtins::kConvert},
364 {"convert_ushort4_sat_rte", Builtins::kConvert},
365 {"convert_ushort4_sat_rtz", Builtins::kConvert},
366 {"convert_ushort4_sat_rtp", Builtins::kConvert},
367 {"convert_ushort4_sat_rtn", Builtins::kConvert},
368 {"convert_ushort8", Builtins::kConvert},
369 {"convert_ushort8_rte", Builtins::kConvert},
370 {"convert_ushort8_rtz", Builtins::kConvert},
371 {"convert_ushort8_rtp", Builtins::kConvert},
372 {"convert_ushort8_rtn", Builtins::kConvert},
373 {"convert_ushort8_sat", Builtins::kConvert},
374 {"convert_ushort8_sat_rte", Builtins::kConvert},
375 {"convert_ushort8_sat_rtz", Builtins::kConvert},
376 {"convert_ushort8_sat_rtp", Builtins::kConvert},
377 {"convert_ushort8_sat_rtn", Builtins::kConvert},
378 {"convert_ushort16", Builtins::kConvert},
379 {"convert_ushort16_rte", Builtins::kConvert},
380 {"convert_ushort16_rtz", Builtins::kConvert},
381 {"convert_ushort16_rtp", Builtins::kConvert},
382 {"convert_ushort16_rtn", Builtins::kConvert},
383 {"convert_ushort16_sat", Builtins::kConvert},
384 {"convert_ushort16_sat_rte", Builtins::kConvert},
385 {"convert_ushort16_sat_rtz", Builtins::kConvert},
386 {"convert_ushort16_sat_rtp", Builtins::kConvert},
387 {"convert_ushort16_sat_rtn", Builtins::kConvert},
388 {"convert_int", Builtins::kConvert},
389 {"convert_int_rte", Builtins::kConvert},
390 {"convert_int_rtz", Builtins::kConvert},
391 {"convert_int_rtp", Builtins::kConvert},
392 {"convert_int_rtn", Builtins::kConvert},
393 {"convert_int_sat", Builtins::kConvert},
394 {"convert_int_sat_rte", Builtins::kConvert},
395 {"convert_int_sat_rtz", Builtins::kConvert},
396 {"convert_int_sat_rtp", Builtins::kConvert},
397 {"convert_int_sat_rtn", Builtins::kConvert},
398 {"convert_int", Builtins::kConvert},
399 {"convert_int_rte", Builtins::kConvert},
400 {"convert_int_rtz", Builtins::kConvert},
401 {"convert_int_rtp", Builtins::kConvert},
402 {"convert_int_rtn", Builtins::kConvert},
403 {"convert_int_sat", Builtins::kConvert},
404 {"convert_int_sat_rte", Builtins::kConvert},
405 {"convert_int_sat_rtz", Builtins::kConvert},
406 {"convert_int_sat_rtp", Builtins::kConvert},
407 {"convert_int_sat_rtn", Builtins::kConvert},
408 {"convert_int2", Builtins::kConvert},
409 {"convert_int2_rte", Builtins::kConvert},
410 {"convert_int2_rtz", Builtins::kConvert},
411 {"convert_int2_rtp", Builtins::kConvert},
412 {"convert_int2_rtn", Builtins::kConvert},
413 {"convert_int2_sat", Builtins::kConvert},
414 {"convert_int2_sat_rte", Builtins::kConvert},
415 {"convert_int2_sat_rtz", Builtins::kConvert},
416 {"convert_int2_sat_rtp", Builtins::kConvert},
417 {"convert_int2_sat_rtn", Builtins::kConvert},
418 {"convert_int3", Builtins::kConvert},
419 {"convert_int3_rte", Builtins::kConvert},
420 {"convert_int3_rtz", Builtins::kConvert},
421 {"convert_int3_rtp", Builtins::kConvert},
422 {"convert_int3_rtn", Builtins::kConvert},
423 {"convert_int3_sat", Builtins::kConvert},
424 {"convert_int3_sat_rte", Builtins::kConvert},
425 {"convert_int3_sat_rtz", Builtins::kConvert},
426 {"convert_int3_sat_rtp", Builtins::kConvert},
427 {"convert_int3_sat_rtn", Builtins::kConvert},
428 {"convert_int4", Builtins::kConvert},
429 {"convert_int4_rte", Builtins::kConvert},
430 {"convert_int4_rtz", Builtins::kConvert},
431 {"convert_int4_rtp", Builtins::kConvert},
432 {"convert_int4_rtn", Builtins::kConvert},
433 {"convert_int4_sat", Builtins::kConvert},
434 {"convert_int4_sat_rte", Builtins::kConvert},
435 {"convert_int4_sat_rtz", Builtins::kConvert},
436 {"convert_int4_sat_rtp", Builtins::kConvert},
437 {"convert_int4_sat_rtn", Builtins::kConvert},
438 {"convert_int8", Builtins::kConvert},
439 {"convert_int8_rte", Builtins::kConvert},
440 {"convert_int8_rtz", Builtins::kConvert},
441 {"convert_int8_rtp", Builtins::kConvert},
442 {"convert_int8_rtn", Builtins::kConvert},
443 {"convert_int8_sat", Builtins::kConvert},
444 {"convert_int8_sat_rte", Builtins::kConvert},
445 {"convert_int8_sat_rtz", Builtins::kConvert},
446 {"convert_int8_sat_rtp", Builtins::kConvert},
447 {"convert_int8_sat_rtn", Builtins::kConvert},
448 {"convert_int16", Builtins::kConvert},
449 {"convert_int16_rte", Builtins::kConvert},
450 {"convert_int16_rtz", Builtins::kConvert},
451 {"convert_int16_rtp", Builtins::kConvert},
452 {"convert_int16_rtn", Builtins::kConvert},
453 {"convert_int16_sat", Builtins::kConvert},
454 {"convert_int16_sat_rte", Builtins::kConvert},
455 {"convert_int16_sat_rtz", Builtins::kConvert},
456 {"convert_int16_sat_rtp", Builtins::kConvert},
457 {"convert_int16_sat_rtn", Builtins::kConvert},
458 {"convert_uint", Builtins::kConvert},
459 {"convert_uint_rte", Builtins::kConvert},
460 {"convert_uint_rtz", Builtins::kConvert},
461 {"convert_uint_rtp", Builtins::kConvert},
462 {"convert_uint_rtn", Builtins::kConvert},
463 {"convert_uint_sat", Builtins::kConvert},
464 {"convert_uint_sat_rte", Builtins::kConvert},
465 {"convert_uint_sat_rtz", Builtins::kConvert},
466 {"convert_uint_sat_rtp", Builtins::kConvert},
467 {"convert_uint_sat_rtn", Builtins::kConvert},
468 {"convert_uint", Builtins::kConvert},
469 {"convert_uint_rte", Builtins::kConvert},
470 {"convert_uint_rtz", Builtins::kConvert},
471 {"convert_uint_rtp", Builtins::kConvert},
472 {"convert_uint_rtn", Builtins::kConvert},
473 {"convert_uint_sat", Builtins::kConvert},
474 {"convert_uint_sat_rte", Builtins::kConvert},
475 {"convert_uint_sat_rtz", Builtins::kConvert},
476 {"convert_uint_sat_rtp", Builtins::kConvert},
477 {"convert_uint_sat_rtn", Builtins::kConvert},
478 {"convert_uint2", Builtins::kConvert},
479 {"convert_uint2_rte", Builtins::kConvert},
480 {"convert_uint2_rtz", Builtins::kConvert},
481 {"convert_uint2_rtp", Builtins::kConvert},
482 {"convert_uint2_rtn", Builtins::kConvert},
483 {"convert_uint2_sat", Builtins::kConvert},
484 {"convert_uint2_sat_rte", Builtins::kConvert},
485 {"convert_uint2_sat_rtz", Builtins::kConvert},
486 {"convert_uint2_sat_rtp", Builtins::kConvert},
487 {"convert_uint2_sat_rtn", Builtins::kConvert},
488 {"convert_uint3", Builtins::kConvert},
489 {"convert_uint3_rte", Builtins::kConvert},
490 {"convert_uint3_rtz", Builtins::kConvert},
491 {"convert_uint3_rtp", Builtins::kConvert},
492 {"convert_uint3_rtn", Builtins::kConvert},
493 {"convert_uint3_sat", Builtins::kConvert},
494 {"convert_uint3_sat_rte", Builtins::kConvert},
495 {"convert_uint3_sat_rtz", Builtins::kConvert},
496 {"convert_uint3_sat_rtp", Builtins::kConvert},
497 {"convert_uint3_sat_rtn", Builtins::kConvert},
498 {"convert_uint4", Builtins::kConvert},
499 {"convert_uint4_rte", Builtins::kConvert},
500 {"convert_uint4_rtz", Builtins::kConvert},
501 {"convert_uint4_rtp", Builtins::kConvert},
502 {"convert_uint4_rtn", Builtins::kConvert},
503 {"convert_uint4_sat", Builtins::kConvert},
504 {"convert_uint4_sat_rte", Builtins::kConvert},
505 {"convert_uint4_sat_rtz", Builtins::kConvert},
506 {"convert_uint4_sat_rtp", Builtins::kConvert},
507 {"convert_uint4_sat_rtn", Builtins::kConvert},
508 {"convert_uint8", Builtins::kConvert},
509 {"convert_uint8_rte", Builtins::kConvert},
510 {"convert_uint8_rtz", Builtins::kConvert},
511 {"convert_uint8_rtp", Builtins::kConvert},
512 {"convert_uint8_rtn", Builtins::kConvert},
513 {"convert_uint8_sat", Builtins::kConvert},
514 {"convert_uint8_sat_rte", Builtins::kConvert},
515 {"convert_uint8_sat_rtz", Builtins::kConvert},
516 {"convert_uint8_sat_rtp", Builtins::kConvert},
517 {"convert_uint8_sat_rtn", Builtins::kConvert},
518 {"convert_uint16", Builtins::kConvert},
519 {"convert_uint16_rte", Builtins::kConvert},
520 {"convert_uint16_rtz", Builtins::kConvert},
521 {"convert_uint16_rtp", Builtins::kConvert},
522 {"convert_uint16_rtn", Builtins::kConvert},
523 {"convert_uint16_sat", Builtins::kConvert},
524 {"convert_uint16_sat_rte", Builtins::kConvert},
525 {"convert_uint16_sat_rtz", Builtins::kConvert},
526 {"convert_uint16_sat_rtp", Builtins::kConvert},
527 {"convert_uint16_sat_rtn", Builtins::kConvert},
528 {"convert_long", Builtins::kConvert},
529 {"convert_long_rte", Builtins::kConvert},
530 {"convert_long_rtz", Builtins::kConvert},
531 {"convert_long_rtp", Builtins::kConvert},
532 {"convert_long_rtn", Builtins::kConvert},
533 {"convert_long_sat", Builtins::kConvert},
534 {"convert_long_sat_rte", Builtins::kConvert},
535 {"convert_long_sat_rtz", Builtins::kConvert},
536 {"convert_long_sat_rtp", Builtins::kConvert},
537 {"convert_long_sat_rtn", Builtins::kConvert},
538 {"convert_long", Builtins::kConvert},
539 {"convert_long_rte", Builtins::kConvert},
540 {"convert_long_rtz", Builtins::kConvert},
541 {"convert_long_rtp", Builtins::kConvert},
542 {"convert_long_rtn", Builtins::kConvert},
543 {"convert_long_sat", Builtins::kConvert},
544 {"convert_long_sat_rte", Builtins::kConvert},
545 {"convert_long_sat_rtz", Builtins::kConvert},
546 {"convert_long_sat_rtp", Builtins::kConvert},
547 {"convert_long_sat_rtn", Builtins::kConvert},
548 {"convert_long2", Builtins::kConvert},
549 {"convert_long2_rte", Builtins::kConvert},
550 {"convert_long2_rtz", Builtins::kConvert},
551 {"convert_long2_rtp", Builtins::kConvert},
552 {"convert_long2_rtn", Builtins::kConvert},
553 {"convert_long2_sat", Builtins::kConvert},
554 {"convert_long2_sat_rte", Builtins::kConvert},
555 {"convert_long2_sat_rtz", Builtins::kConvert},
556 {"convert_long2_sat_rtp", Builtins::kConvert},
557 {"convert_long2_sat_rtn", Builtins::kConvert},
558 {"convert_long3", Builtins::kConvert},
559 {"convert_long3_rte", Builtins::kConvert},
560 {"convert_long3_rtz", Builtins::kConvert},
561 {"convert_long3_rtp", Builtins::kConvert},
562 {"convert_long3_rtn", Builtins::kConvert},
563 {"convert_long3_sat", Builtins::kConvert},
564 {"convert_long3_sat_rte", Builtins::kConvert},
565 {"convert_long3_sat_rtz", Builtins::kConvert},
566 {"convert_long3_sat_rtp", Builtins::kConvert},
567 {"convert_long3_sat_rtn", Builtins::kConvert},
568 {"convert_long4", Builtins::kConvert},
569 {"convert_long4_rte", Builtins::kConvert},
570 {"convert_long4_rtz", Builtins::kConvert},
571 {"convert_long4_rtp", Builtins::kConvert},
572 {"convert_long4_rtn", Builtins::kConvert},
573 {"convert_long4_sat", Builtins::kConvert},
574 {"convert_long4_sat_rte", Builtins::kConvert},
575 {"convert_long4_sat_rtz", Builtins::kConvert},
576 {"convert_long4_sat_rtp", Builtins::kConvert},
577 {"convert_long4_sat_rtn", Builtins::kConvert},
578 {"convert_long8", Builtins::kConvert},
579 {"convert_long8_rte", Builtins::kConvert},
580 {"convert_long8_rtz", Builtins::kConvert},
581 {"convert_long8_rtp", Builtins::kConvert},
582 {"convert_long8_rtn", Builtins::kConvert},
583 {"convert_long8_sat", Builtins::kConvert},
584 {"convert_long8_sat_rte", Builtins::kConvert},
585 {"convert_long8_sat_rtz", Builtins::kConvert},
586 {"convert_long8_sat_rtp", Builtins::kConvert},
587 {"convert_long8_sat_rtn", Builtins::kConvert},
588 {"convert_long16", Builtins::kConvert},
589 {"convert_long16_rte", Builtins::kConvert},
590 {"convert_long16_rtz", Builtins::kConvert},
591 {"convert_long16_rtp", Builtins::kConvert},
592 {"convert_long16_rtn", Builtins::kConvert},
593 {"convert_long16_sat", Builtins::kConvert},
594 {"convert_long16_sat_rte", Builtins::kConvert},
595 {"convert_long16_sat_rtz", Builtins::kConvert},
596 {"convert_long16_sat_rtp", Builtins::kConvert},
597 {"convert_long16_sat_rtn", Builtins::kConvert},
598 {"convert_ulong", Builtins::kConvert},
599 {"convert_ulong_rte", Builtins::kConvert},
600 {"convert_ulong_rtz", Builtins::kConvert},
601 {"convert_ulong_rtp", Builtins::kConvert},
602 {"convert_ulong_rtn", Builtins::kConvert},
603 {"convert_ulong_sat", Builtins::kConvert},
604 {"convert_ulong_sat_rte", Builtins::kConvert},
605 {"convert_ulong_sat_rtz", Builtins::kConvert},
606 {"convert_ulong_sat_rtp", Builtins::kConvert},
607 {"convert_ulong_sat_rtn", Builtins::kConvert},
608 {"convert_ulong", Builtins::kConvert},
609 {"convert_ulong_rte", Builtins::kConvert},
610 {"convert_ulong_rtz", Builtins::kConvert},
611 {"convert_ulong_rtp", Builtins::kConvert},
612 {"convert_ulong_rtn", Builtins::kConvert},
613 {"convert_ulong_sat", Builtins::kConvert},
614 {"convert_ulong_sat_rte", Builtins::kConvert},
615 {"convert_ulong_sat_rtz", Builtins::kConvert},
616 {"convert_ulong_sat_rtp", Builtins::kConvert},
617 {"convert_ulong_sat_rtn", Builtins::kConvert},
618 {"convert_ulong2", Builtins::kConvert},
619 {"convert_ulong2_rte", Builtins::kConvert},
620 {"convert_ulong2_rtz", Builtins::kConvert},
621 {"convert_ulong2_rtp", Builtins::kConvert},
622 {"convert_ulong2_rtn", Builtins::kConvert},
623 {"convert_ulong2_sat", Builtins::kConvert},
624 {"convert_ulong2_sat_rte", Builtins::kConvert},
625 {"convert_ulong2_sat_rtz", Builtins::kConvert},
626 {"convert_ulong2_sat_rtp", Builtins::kConvert},
627 {"convert_ulong2_sat_rtn", Builtins::kConvert},
628 {"convert_ulong3", Builtins::kConvert},
629 {"convert_ulong3_rte", Builtins::kConvert},
630 {"convert_ulong3_rtz", Builtins::kConvert},
631 {"convert_ulong3_rtp", Builtins::kConvert},
632 {"convert_ulong3_rtn", Builtins::kConvert},
633 {"convert_ulong3_sat", Builtins::kConvert},
634 {"convert_ulong3_sat_rte", Builtins::kConvert},
635 {"convert_ulong3_sat_rtz", Builtins::kConvert},
636 {"convert_ulong3_sat_rtp", Builtins::kConvert},
637 {"convert_ulong3_sat_rtn", Builtins::kConvert},
638 {"convert_ulong4", Builtins::kConvert},
639 {"convert_ulong4_rte", Builtins::kConvert},
640 {"convert_ulong4_rtz", Builtins::kConvert},
641 {"convert_ulong4_rtp", Builtins::kConvert},
642 {"convert_ulong4_rtn", Builtins::kConvert},
643 {"convert_ulong4_sat", Builtins::kConvert},
644 {"convert_ulong4_sat_rte", Builtins::kConvert},
645 {"convert_ulong4_sat_rtz", Builtins::kConvert},
646 {"convert_ulong4_sat_rtp", Builtins::kConvert},
647 {"convert_ulong4_sat_rtn", Builtins::kConvert},
648 {"convert_ulong8", Builtins::kConvert},
649 {"convert_ulong8_rte", Builtins::kConvert},
650 {"convert_ulong8_rtz", Builtins::kConvert},
651 {"convert_ulong8_rtp", Builtins::kConvert},
652 {"convert_ulong8_rtn", Builtins::kConvert},
653 {"convert_ulong8_sat", Builtins::kConvert},
654 {"convert_ulong8_sat_rte", Builtins::kConvert},
655 {"convert_ulong8_sat_rtz", Builtins::kConvert},
656 {"convert_ulong8_sat_rtp", Builtins::kConvert},
657 {"convert_ulong8_sat_rtn", Builtins::kConvert},
658 {"convert_ulong16", Builtins::kConvert},
659 {"convert_ulong16_rte", Builtins::kConvert},
660 {"convert_ulong16_rtz", Builtins::kConvert},
661 {"convert_ulong16_rtp", Builtins::kConvert},
662 {"convert_ulong16_rtn", Builtins::kConvert},
663 {"convert_ulong16_sat", Builtins::kConvert},
664 {"convert_ulong16_sat_rte", Builtins::kConvert},
665 {"convert_ulong16_sat_rtz", Builtins::kConvert},
666 {"convert_ulong16_sat_rtp", Builtins::kConvert},
667 {"convert_ulong16_sat_rtn", Builtins::kConvert},
668 {"convert_half", Builtins::kConvert},
669 {"convert_half_rte", Builtins::kConvert},
670 {"convert_half_rtz", Builtins::kConvert},
671 {"convert_half_rtp", Builtins::kConvert},
672 {"convert_half_rtn", Builtins::kConvert},
673 {"convert_half_sat", Builtins::kConvert},
674 {"convert_half_sat_rte", Builtins::kConvert},
675 {"convert_half_sat_rtz", Builtins::kConvert},
676 {"convert_half_sat_rtp", Builtins::kConvert},
677 {"convert_half_sat_rtn", Builtins::kConvert},
678 {"convert_half", Builtins::kConvert},
679 {"convert_half_rte", Builtins::kConvert},
680 {"convert_half_rtz", Builtins::kConvert},
681 {"convert_half_rtp", Builtins::kConvert},
682 {"convert_half_rtn", Builtins::kConvert},
683 {"convert_half_sat", Builtins::kConvert},
684 {"convert_half_sat_rte", Builtins::kConvert},
685 {"convert_half_sat_rtz", Builtins::kConvert},
686 {"convert_half_sat_rtp", Builtins::kConvert},
687 {"convert_half_sat_rtn", Builtins::kConvert},
688 {"convert_half2", Builtins::kConvert},
689 {"convert_half2_rte", Builtins::kConvert},
690 {"convert_half2_rtz", Builtins::kConvert},
691 {"convert_half2_rtp", Builtins::kConvert},
692 {"convert_half2_rtn", Builtins::kConvert},
693 {"convert_half2_sat", Builtins::kConvert},
694 {"convert_half2_sat_rte", Builtins::kConvert},
695 {"convert_half2_sat_rtz", Builtins::kConvert},
696 {"convert_half2_sat_rtp", Builtins::kConvert},
697 {"convert_half2_sat_rtn", Builtins::kConvert},
698 {"convert_half3", Builtins::kConvert},
699 {"convert_half3_rte", Builtins::kConvert},
700 {"convert_half3_rtz", Builtins::kConvert},
701 {"convert_half3_rtp", Builtins::kConvert},
702 {"convert_half3_rtn", Builtins::kConvert},
703 {"convert_half3_sat", Builtins::kConvert},
704 {"convert_half3_sat_rte", Builtins::kConvert},
705 {"convert_half3_sat_rtz", Builtins::kConvert},
706 {"convert_half3_sat_rtp", Builtins::kConvert},
707 {"convert_half3_sat_rtn", Builtins::kConvert},
708 {"convert_half4", Builtins::kConvert},
709 {"convert_half4_rte", Builtins::kConvert},
710 {"convert_half4_rtz", Builtins::kConvert},
711 {"convert_half4_rtp", Builtins::kConvert},
712 {"convert_half4_rtn", Builtins::kConvert},
713 {"convert_half4_sat", Builtins::kConvert},
714 {"convert_half4_sat_rte", Builtins::kConvert},
715 {"convert_half4_sat_rtz", Builtins::kConvert},
716 {"convert_half4_sat_rtp", Builtins::kConvert},
717 {"convert_half4_sat_rtn", Builtins::kConvert},
718 {"convert_half8", Builtins::kConvert},
719 {"convert_half8_rte", Builtins::kConvert},
720 {"convert_half8_rtz", Builtins::kConvert},
721 {"convert_half8_rtp", Builtins::kConvert},
722 {"convert_half8_rtn", Builtins::kConvert},
723 {"convert_half8_sat", Builtins::kConvert},
724 {"convert_half8_sat_rte", Builtins::kConvert},
725 {"convert_half8_sat_rtz", Builtins::kConvert},
726 {"convert_half8_sat_rtp", Builtins::kConvert},
727 {"convert_half8_sat_rtn", Builtins::kConvert},
728 {"convert_half16", Builtins::kConvert},
729 {"convert_half16_rte", Builtins::kConvert},
730 {"convert_half16_rtz", Builtins::kConvert},
731 {"convert_half16_rtp", Builtins::kConvert},
732 {"convert_half16_rtn", Builtins::kConvert},
733 {"convert_half16_sat", Builtins::kConvert},
734 {"convert_half16_sat_rte", Builtins::kConvert},
735 {"convert_half16_sat_rtz", Builtins::kConvert},
736 {"convert_half16_sat_rtp", Builtins::kConvert},
737 {"convert_half16_sat_rtn", Builtins::kConvert},
738 {"convert_float", Builtins::kConvert},
739 {"convert_float_rte", Builtins::kConvert},
740 {"convert_float_rtz", Builtins::kConvert},
741 {"convert_float_rtp", Builtins::kConvert},
742 {"convert_float_rtn", Builtins::kConvert},
743 {"convert_float_sat", Builtins::kConvert},
744 {"convert_float_sat_rte", Builtins::kConvert},
745 {"convert_float_sat_rtz", Builtins::kConvert},
746 {"convert_float_sat_rtp", Builtins::kConvert},
747 {"convert_float_sat_rtn", Builtins::kConvert},
748 {"convert_float", Builtins::kConvert},
749 {"convert_float_rte", Builtins::kConvert},
750 {"convert_float_rtz", Builtins::kConvert},
751 {"convert_float_rtp", Builtins::kConvert},
752 {"convert_float_rtn", Builtins::kConvert},
753 {"convert_float_sat", Builtins::kConvert},
754 {"convert_float_sat_rte", Builtins::kConvert},
755 {"convert_float_sat_rtz", Builtins::kConvert},
756 {"convert_float_sat_rtp", Builtins::kConvert},
757 {"convert_float_sat_rtn", Builtins::kConvert},
758 {"convert_float2", Builtins::kConvert},
759 {"convert_float2_rte", Builtins::kConvert},
760 {"convert_float2_rtz", Builtins::kConvert},
761 {"convert_float2_rtp", Builtins::kConvert},
762 {"convert_float2_rtn", Builtins::kConvert},
763 {"convert_float2_sat", Builtins::kConvert},
764 {"convert_float2_sat_rte", Builtins::kConvert},
765 {"convert_float2_sat_rtz", Builtins::kConvert},
766 {"convert_float2_sat_rtp", Builtins::kConvert},
767 {"convert_float2_sat_rtn", Builtins::kConvert},
768 {"convert_float3", Builtins::kConvert},
769 {"convert_float3_rte", Builtins::kConvert},
770 {"convert_float3_rtz", Builtins::kConvert},
771 {"convert_float3_rtp", Builtins::kConvert},
772 {"convert_float3_rtn", Builtins::kConvert},
773 {"convert_float3_sat", Builtins::kConvert},
774 {"convert_float3_sat_rte", Builtins::kConvert},
775 {"convert_float3_sat_rtz", Builtins::kConvert},
776 {"convert_float3_sat_rtp", Builtins::kConvert},
777 {"convert_float3_sat_rtn", Builtins::kConvert},
778 {"convert_float4", Builtins::kConvert},
779 {"convert_float4_rte", Builtins::kConvert},
780 {"convert_float4_rtz", Builtins::kConvert},
781 {"convert_float4_rtp", Builtins::kConvert},
782 {"convert_float4_rtn", Builtins::kConvert},
783 {"convert_float4_sat", Builtins::kConvert},
784 {"convert_float4_sat_rte", Builtins::kConvert},
785 {"convert_float4_sat_rtz", Builtins::kConvert},
786 {"convert_float4_sat_rtp", Builtins::kConvert},
787 {"convert_float4_sat_rtn", Builtins::kConvert},
788 {"convert_float8", Builtins::kConvert},
789 {"convert_float8_rte", Builtins::kConvert},
790 {"convert_float8_rtz", Builtins::kConvert},
791 {"convert_float8_rtp", Builtins::kConvert},
792 {"convert_float8_rtn", Builtins::kConvert},
793 {"convert_float8_sat", Builtins::kConvert},
794 {"convert_float8_sat_rte", Builtins::kConvert},
795 {"convert_float8_sat_rtz", Builtins::kConvert},
796 {"convert_float8_sat_rtp", Builtins::kConvert},
797 {"convert_float8_sat_rtn", Builtins::kConvert},
798 {"convert_float16", Builtins::kConvert},
799 {"convert_float16_rte", Builtins::kConvert},
800 {"convert_float16_rtz", Builtins::kConvert},
801 {"convert_float16_rtp", Builtins::kConvert},
802 {"convert_float16_rtn", Builtins::kConvert},
803 {"convert_float16_sat", Builtins::kConvert},
804 {"convert_float16_sat_rte", Builtins::kConvert},
805 {"convert_float16_sat_rtz", Builtins::kConvert},
806 {"convert_float16_sat_rtp", Builtins::kConvert},
807 {"convert_float16_sat_rtn", Builtins::kConvert},
808
809 // Event
810 {"retain_event", Builtins::kRetainEvent},
811 {"release_event", Builtins::kReleaseEvent},
812 {"create_user_event", Builtins::kCreateUserEvent},
813 {"is_valid_event", Builtins::kIsValidEvent},
814 {"set_user_event_status", Builtins::kSetUserEventStatus},
815
816 // MemoryFence
817 {"mem_fence", Builtins::kMemFence},
818 {"read_mem_fence", Builtins::kReadMemFence},
819 {"write_mem_fence", Builtins::kWriteMemFence},
820
821 // Geometric
822 {"cross", Builtins::kCross},
823 {"dot", Builtins::kDot},
824 {"distance", Builtins::kDistance},
825 {"length", Builtins::kLength},
826 {"normalize", Builtins::kNormalize},
827 {"fast_distance", Builtins::kFastDistance},
828 {"fast_length", Builtins::kFastLength},
829 {"fast_normalize", Builtins::kFastNormalize},
830
831 // Image
832 {"read_imagef", Builtins::kReadImagef},
833 {"read_imagei", Builtins::kReadImagei},
834 {"read_imageui", Builtins::kReadImageui},
835 {"read_imageh", Builtins::kReadImageh},
836 {"write_imagef", Builtins::kWriteImagef},
837 {"write_imagei", Builtins::kWriteImagei},
838 {"write_imageui", Builtins::kWriteImageui},
839 {"write_imageh", Builtins::kWriteImageh},
840 {"get_image_width", Builtins::kGetImageWidth},
841 {"get_image_height", Builtins::kGetImageHeight},
842 {"get_image_depth", Builtins::kGetImageDepth},
843 {"get_image_channel_data_type", Builtins::kGetImageChannelDataType},
844 {"get_image_channel_order", Builtins::kGetImageChannelOrder},
845 {"get_image_dim", Builtins::kGetImageDim},
846 {"get_image_array_size", Builtins::kGetImageArraySize},
847 {"get_image_num_samples", Builtins::kGetImageNumSamples},
848
849 // Integer
850 {"abs", Builtins::kAbs},
851 {"abs_diff", Builtins::kAbsDiff},
852 {"add_sat", Builtins::kAddSat},
853 {"clamp", Builtins::kClamp},
854 {"clz", Builtins::kClz},
855 {"ctz", Builtins::kCtz},
856 {"hadd", Builtins::kHadd},
857 {"mad24", Builtins::kMad24},
858 {"mad_hi", Builtins::kMadHi},
859 {"mad_sat", Builtins::kMadSat},
860 {"max", Builtins::kMax},
861 {"min", Builtins::kMin},
862 {"mul24", Builtins::kMul24},
863 {"mul_hi", Builtins::kMulHi},
864 {"popcount", Builtins::kPopcount},
865 {"rhadd", Builtins::kRhadd},
866 {"rotate", Builtins::kRotate},
867 {"sub_sat", Builtins::kSubSat},
868 {"upsample", Builtins::kUpsample},
869
870 // Math
871 {"acos", Builtins::kAcos},
872 {"acosh", Builtins::kAcosh},
873 {"acospi", Builtins::kAcospi},
874 {"asin", Builtins::kAsin},
875 {"asinh", Builtins::kAsinh},
876 {"asinpi", Builtins::kAsinpi},
877 {"atan", Builtins::kAtan},
878 {"atan2", Builtins::kAtan2},
879 {"atanh", Builtins::kAtanh},
880 {"atanpi", Builtins::kAtanpi},
881 {"atan2pi", Builtins::kAtan2pi},
882 {"cbrt", Builtins::kCbrt},
883 {"ceil", Builtins::kCeil},
884 {"copysign", Builtins::kCopysign},
885 {"cos", Builtins::kCos},
886 {"half_cos", Builtins::kHalfCos},
887 {"native_cos", Builtins::kNativeCos},
888 {"cosh", Builtins::kCosh},
889 {"cospi", Builtins::kCospi},
890 {"half_divide", Builtins::kHalfDivide},
891 {"native_divide", Builtins::kNativeDivide},
892 {"erf", Builtins::kErf},
893 {"erfc", Builtins::kErfc},
894 {"exp", Builtins::kExp},
895 {"half_exp", Builtins::kHalfExp},
896 {"native_exp", Builtins::kNativeExp},
897 {"exp2", Builtins::kExp2},
898 {"half_exp2", Builtins::kHalfExp2},
899 {"native_exp2", Builtins::kNativeExp2},
900 {"exp10", Builtins::kExp10},
901 {"half_exp10", Builtins::kHalfExp10},
902 {"native_exp10", Builtins::kNativeExp10},
903 {"expm1", Builtins::kExpm1},
904 {"fabs", Builtins::kFabs},
905 {"fdim", Builtins::kFdim},
906 {"floor", Builtins::kFloor},
907 {"fma", Builtins::kFma},
908 {"fmax", Builtins::kFmax},
909 {"fmin", Builtins::kFmin},
910 {"fmod", Builtins::kFmod},
911 {"fract", Builtins::kFract},
912 {"frexp", Builtins::kFrexp},
913 {"hypot", Builtins::kHypot},
914 {"ilogb", Builtins::kIlogb},
915 {"ldexp", Builtins::kLdexp},
916 {"lgamma", Builtins::kLgamma},
917 {"lgamma_r", Builtins::kLgammaR},
918 {"log", Builtins::kLog},
919 {"half_log", Builtins::kHalfLog},
920 {"native_log", Builtins::kNativeLog},
921 {"log2", Builtins::kLog2},
922 {"half_log2", Builtins::kHalfLog2},
923 {"native_log2", Builtins::kNativeLog2},
924 {"log10", Builtins::kLog10},
925 {"half_log10", Builtins::kHalfLog10},
926 {"native_log10", Builtins::kNativeLog10},
927 {"log1p", Builtins::kLog1p},
928 {"logb", Builtins::kLogb},
929 {"mad", Builtins::kMad},
930 {"magmax", Builtins::kMagmax},
931 {"magmin", Builtins::kMagmin},
932 {"modf", Builtins::kModf},
933 {"nan", Builtins::kNan},
934 {"nextafter", Builtins::kNextafter},
935 {"pow", Builtins::kPow},
936 {"pown", Builtins::kPown},
937 {"powr", Builtins::kPowr},
938 {"half_powr", Builtins::kHalfPowr},
939 {"native_powr", Builtins::kNativePowr},
940 {"half_recip", Builtins::kHalfRecip},
941 {"native_recip", Builtins::kNativeRecip},
942 {"remainder", Builtins::kRemainder},
943 {"remquo", Builtins::kRemquo},
944 {"rint", Builtins::kRint},
945 {"round", Builtins::kRound},
946 {"rootn", Builtins::kRootn},
947 {"rsqrt", Builtins::kRsqrt},
948 {"half_rsqrt", Builtins::kHalfRsqrt},
949 {"native_rsqrt", Builtins::kNativeRsqrt},
950 {"sin", Builtins::kSin},
951 {"half_sin", Builtins::kHalfSin},
952 {"native_sin", Builtins::kNativeSin},
953 {"sincos", Builtins::kSincos},
954 {"sinh", Builtins::kSinh},
955 {"sinpi", Builtins::kSinpi},
956 {"sqrt", Builtins::kSqrt},
957 {"half_sqrt", Builtins::kHalfSqrt},
958 {"native_sqrt", Builtins::kNativeSqrt},
959 {"tan", Builtins::kTan},
960 {"half_tan", Builtins::kHalfTan},
961 {"native_tan", Builtins::kNativeTan},
962 {"tanh", Builtins::kTanh},
963 {"tanpi", Builtins::kTanpi},
964 {"tgamma", Builtins::kTgamma},
965 {"trunc", Builtins::kTrunc},
966
967 // Relational
968 {"isequal", Builtins::kIsequal},
969 {"isnotequal", Builtins::kIsnotequal},
970 {"isgreater", Builtins::kIsgreater},
971 {"isgreaterequal", Builtins::kIsgreaterequal},
972 {"isless", Builtins::kIsless},
973 {"islessequal", Builtins::kIslessequal},
974 {"islessgreater", Builtins::kIslessgreater},
975 {"isfinite", Builtins::kIsfinite},
976 {"isinf", Builtins::kIsinf},
977 {"isnan", Builtins::kIsnan},
978 {"isnormal", Builtins::kIsnormal},
979 {"isordered", Builtins::kIsordered},
980 {"isunordered", Builtins::kIsunordered},
981 {"signbit", Builtins::kSignbit},
982 {"any", Builtins::kAny},
983 {"all", Builtins::kAll},
984 {"bitselect", Builtins::kBitselect},
985 {"select", Builtins::kSelect},
986
987 // Sync
988 {"barrier", Builtins::kBarrier},
989 {"work_group_barrier", Builtins::kWorkGroupBarrier},
990
991 // Vector
992 {"shuffle", Builtins::kShuffle},
993 {"shuffle2", Builtins::kShuffle2},
994 {"vec_step", Builtins::kVecStep},
995 {"vload", Builtins::kVload},
996 {"vload2", Builtins::kVload},
997 {"vload3", Builtins::kVload},
998 {"vload4", Builtins::kVload},
999 {"vload8", Builtins::kVload},
1000 {"vload16", Builtins::kVload},
1001 {"vload_half", Builtins::kVloadHalf},
1002 {"vload_half2", Builtins::kVloadHalf},
1003 {"vload_half3", Builtins::kVloadHalf},
1004 {"vload_half4", Builtins::kVloadHalf},
1005 {"vload_half8", Builtins::kVloadHalf},
1006 {"vload_half16", Builtins::kVloadHalf},
1007 {"vloada_half", Builtins::kVloadaHalf},
1008 {"vloada_half2", Builtins::kVloadaHalf},
1009 {"vloada_half3", Builtins::kVloadaHalf},
1010 {"vloada_half4", Builtins::kVloadaHalf},
1011 {"vloada_half8", Builtins::kVloadaHalf},
1012 {"vloada_half16", Builtins::kVloadaHalf},
1013 {"vstore", Builtins::kVstore},
1014 {"vstore2", Builtins::kVstore},
1015 {"vstore3", Builtins::kVstore},
1016 {"vstore4", Builtins::kVstore},
1017 {"vstore8", Builtins::kVstore},
1018 {"vstore16", Builtins::kVstore},
1019 {"vstore_half", Builtins::kVstoreHalf},
1020 {"vstore_half_rte", Builtins::kVstoreHalf},
1021 {"vstore_half_rtz", Builtins::kVstoreHalf},
1022 {"vstore_half_rtp", Builtins::kVstoreHalf},
1023 {"vstore_half_rtn", Builtins::kVstoreHalf},
1024 {"vstore_half2", Builtins::kVstoreHalf},
1025 {"vstore_half2_rte", Builtins::kVstoreHalf},
1026 {"vstore_half2_rtz", Builtins::kVstoreHalf},
1027 {"vstore_half2_rtp", Builtins::kVstoreHalf},
1028 {"vstore_half2_rtn", Builtins::kVstoreHalf},
1029 {"vstore_half3", Builtins::kVstoreHalf},
1030 {"vstore_half3_rte", Builtins::kVstoreHalf},
1031 {"vstore_half3_rtz", Builtins::kVstoreHalf},
1032 {"vstore_half3_rtp", Builtins::kVstoreHalf},
1033 {"vstore_half3_rtn", Builtins::kVstoreHalf},
1034 {"vstore_half4", Builtins::kVstoreHalf},
1035 {"vstore_half4_rte", Builtins::kVstoreHalf},
1036 {"vstore_half4_rtz", Builtins::kVstoreHalf},
1037 {"vstore_half4_rtp", Builtins::kVstoreHalf},
1038 {"vstore_half4_rtn", Builtins::kVstoreHalf},
1039 {"vstore_half8", Builtins::kVstoreHalf},
1040 {"vstore_half8_rte", Builtins::kVstoreHalf},
1041 {"vstore_half8_rtz", Builtins::kVstoreHalf},
1042 {"vstore_half8_rtp", Builtins::kVstoreHalf},
1043 {"vstore_half8_rtn", Builtins::kVstoreHalf},
1044 {"vstore_half16", Builtins::kVstoreHalf},
1045 {"vstore_half16_rte", Builtins::kVstoreHalf},
1046 {"vstore_half16_rtz", Builtins::kVstoreHalf},
1047 {"vstore_half16_rtp", Builtins::kVstoreHalf},
1048 {"vstore_half16_rtn", Builtins::kVstoreHalf},
1049 {"vstorea_half", Builtins::kVstoreaHalf},
1050 {"vstorea_half_rte", Builtins::kVstoreaHalf},
1051 {"vstorea_half_rtz", Builtins::kVstoreaHalf},
1052 {"vstorea_half_rtp", Builtins::kVstoreaHalf},
1053 {"vstorea_half_rtn", Builtins::kVstoreaHalf},
1054 {"vstorea_half2", Builtins::kVstoreaHalf},
1055 {"vstorea_half2_rte", Builtins::kVstoreaHalf},
1056 {"vstorea_half2_rtz", Builtins::kVstoreaHalf},
1057 {"vstorea_half2_rtp", Builtins::kVstoreaHalf},
1058 {"vstorea_half2_rtn", Builtins::kVstoreaHalf},
1059 {"vstorea_half3", Builtins::kVstoreaHalf},
1060 {"vstorea_half3_rte", Builtins::kVstoreaHalf},
1061 {"vstorea_half3_rtz", Builtins::kVstoreaHalf},
1062 {"vstorea_half3_rtp", Builtins::kVstoreaHalf},
1063 {"vstorea_half3_rtn", Builtins::kVstoreaHalf},
1064 {"vstorea_half4", Builtins::kVstoreaHalf},
1065 {"vstorea_half4_rte", Builtins::kVstoreaHalf},
1066 {"vstorea_half4_rtz", Builtins::kVstoreaHalf},
1067 {"vstorea_half4_rtp", Builtins::kVstoreaHalf},
1068 {"vstorea_half4_rtn", Builtins::kVstoreaHalf},
1069 {"vstorea_half8", Builtins::kVstoreaHalf},
1070 {"vstorea_half8_rte", Builtins::kVstoreaHalf},
1071 {"vstorea_half8_rtz", Builtins::kVstoreaHalf},
1072 {"vstorea_half8_rtp", Builtins::kVstoreaHalf},
1073 {"vstorea_half8_rtn", Builtins::kVstoreaHalf},
1074 {"vstorea_half16", Builtins::kVstoreaHalf},
1075 {"vstorea_half16_rte", Builtins::kVstoreaHalf},
1076 {"vstorea_half16_rtz", Builtins::kVstoreaHalf},
1077 {"vstorea_half16_rtp", Builtins::kVstoreaHalf},
1078 {"vstorea_half16_rtn", Builtins::kVstoreaHalf},
1079
1080 // WorkItem
1081 {"get_global_id", Builtins::kGetGlobalId},
1082 {"get_global_size", Builtins::kGetGlobalSize},
1083 {"get_global_offset", Builtins::kGetGlobalOffset},
1084 {"get_global_linear_id", Builtins::kGetGlobalLinearId},
1085 {"get_group_id", Builtins::kGetGroupId},
1086 {"get_local_id", Builtins::kGetLocalId},
1087 {"get_local_linear_id", Builtins::kGetLocalLinearId},
1088 {"get_local_size", Builtins::kGetLocalSize},
1089 {"get_enqueued_local_size", Builtins::kGetEnqueuedLocalSize},
1090 {"get_num_groups", Builtins::kGetNumGroups},
1091 {"get_work_dim", Builtins::kGetWorkDim},
1092
1093 // Pipe
1094 {"read_pipe", Builtins::kReadPipe},
1095 {"write_pipe", Builtins::kWritePipe},
1096 {"reserve_read_pipe", Builtins::kReserveReadPipe},
1097 {"commit_read_pipe", Builtins::kCommitReadPipe},
1098 {"is_valid_reserve_id", Builtins::kIsValidReserveId},
1099 {"work_group_reserve_read_pipe", Builtins::kWorkGroupReserveReadPipe},
1100 {"work_group_reserve_write_pipe", Builtins::kWorkGroupReserveWritePipe},
1101 {"work_group_commit_read_pipe", Builtins::kWorkGroupCommitReadPipe},
1102 {"work_group_commit_write_pipe", Builtins::kWorkGroupCommitWritePipe},
1103 {"get_pipe_num_packets", Builtins::kGetPipeNumPackets},
1104 {"get_pipe_max_packets", Builtins::kGetPipeMaxPackets},
1105
1106 // SubgroupsKHR
1107 {"get_sub_group_size", Builtins::kGetSubGroupSize},
1108 {"get_max_sub_group_size", Builtins::kGetMaxSubGroupSize},
1109 {"get_num_sub_groups", Builtins::kGetNumSubGroups},
1110 {"get_enqueued_num_sub_groups", Builtins::kGetEnqueuedNumSubGroups},
1111 {"get_sub_group_id", Builtins::kGetSubGroupId},
1112 {"get_sub_group_local_id", Builtins::kGetSubGroupLocalId},
1113 {"sub_group_barrier", Builtins::kSubGroupBarrier},
1114 {"sub_group_all", Builtins::kSubGroupAll},
1115 {"sub_group_any", Builtins::kSubGroupAny},
1116 {"sub_group_broadcast", Builtins::kSubGroupBroadcast},
1117 {"sub_group_reduce_add", Builtins::kSubGroupReduceAdd},
1118 {"sub_group_reduce_min", Builtins::kSubGroupReduceMin},
1119 {"sub_group_reduce_max", Builtins::kSubGroupReduceMax},
1120 {"sub_group_scan_exclusive_add", Builtins::kSubGroupScanExclusiveAdd},
1121 {"sub_group_scan_exclusive_min", Builtins::kSubGroupScanExclusiveMin},
1122 {"sub_group_scan_exclusive_max", Builtins::kSubGroupScanExclusiveMax},
1123 {"sub_group_scan_inclusive_add", Builtins::kSubGroupScanInclusiveAdd},
1124 {"sub_group_scan_inclusive_min", Builtins::kSubGroupScanInclusiveMin},
1125 {"sub_group_scan_inclusive_max", Builtins::kSubGroupScanInclusiveMax},
1126 {"sub_group_reserve_read_pipe", Builtins::kSubGroupReserveReadPipe},
1127 {"sub_group_reserve_write_pipe", Builtins::kSubGroupReserveWritePipe},
1128 {"sub_group_commit_read_pipe", Builtins::kSubGroupCommitReadPipe},
1129 {"sub_group_commit_write_pipe", Builtins::kSubGroupCommitWritePipe},
1130 {"get_kernel_sub_group_count_for_ndrange",
1131 Builtins::kGetKernelSubGroupCountForNdrange},
1132 {"get_kernel_max_sub_group_size_for_ndrange",
1133 Builtins::kGetKernelMaxSubGroupSizeForNdrange},
1134
1135 // Internal
1136 {"clspv.fract.f", Builtins::kFract},
1137 {"clspv.fract.v2f", Builtins::kFract},
1138 {"clspv.fract.v3f", Builtins::kFract},
1139 {"clspv.fract.v4f", Builtins::kFract},
1140
1141 {"__clspv_vloada_half2", Builtins::kVloadaHalf},
1142 {"__clspv_vloada_half4", Builtins::kVloadaHalf},
1143
1144};
1145
1146#endif // CLSPV_LIB_BUILTINSMAP_INC_