blob: 2586af319ce54536bc23820239b403cf83fa1690 [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_BUILTINSENUM_H_
16#define CLSPV_LIB_BUILTINSENUM_H_
17
18namespace clspv {
19namespace Builtins {
20
21enum BuiltinType {
22 kBuiltinNone = 0,
23
SJW61531372020-06-09 07:31:08 -050024 kType_Clspv_Start,
25 kClspvResource,
26 kClspvLocal,
27 kSpirvOp,
SJW61531372020-06-09 07:31:08 -050028 kSpirvAtomicXor,
SJW61531372020-06-09 07:31:08 -050029 kSpirvCopyMemory,
30 kClspvSamplerVarLiteral,
31 kClspvCompositeConstruct,
32 kType_Clspv_End,
33
SJW173c7e92020-03-16 08:44:47 -050034 kType_Async_Start,
35 kAsyncWorkGroupCopy,
36 kAsyncWorkGroupStridedCopy,
37 kWaitGroupEvents,
38 kPrefetch,
39 kType_Async_End,
40
41 kType_Atomic_Start,
42 kAtomicInit,
43 kAtomicAdd,
44 kAtomicSub,
45 kAtomicInc,
46 kAtomicDec,
47 kAtomicXchg,
48 kAtomicCmpxchg,
49 kAtomicMin,
50 kAtomicMax,
51 kAtomicAnd,
52 kAtomicOr,
53 kAtomicXor,
54 kAtomicWorkItemFence,
55 kAtomicStore,
56 kAtomicStoreExplicit,
57 kAtomicLoad,
58 kAtomicLoadExplicit,
59 kAtomicExchange,
60 kAtomicExchangeExplicit,
61 kAtomicCompareExchangeStrong,
62 kAtomicCompareExchangeStrongExplicit,
63 kAtomicCompareExchangeWeak,
64 kAtomicCompareExchangeWeakExplicit,
alan-baker4986eff2020-10-29 13:38:00 -040065 kAtomicFetchAdd,
66 kAtomicFetchAddExplicit,
67 kAtomicFetchSub,
68 kAtomicFetchSubExplicit,
69 kAtomicFetchOr,
70 kAtomicFetchOrExplicit,
71 kAtomicFetchXor,
72 kAtomicFetchXorExplicit,
73 kAtomicFetchAnd,
74 kAtomicFetchAndExplicit,
75 kAtomicFetchMin,
76 kAtomicFetchMinExplicit,
77 kAtomicFetchMax,
78 kAtomicFetchMaxExplicit,
SJW173c7e92020-03-16 08:44:47 -050079 kAtomicFlagTestAndSet,
80 kAtomicFlagTestAndSetExplicit,
81 kAtomicFlagClear,
82 kAtomicFlagClearExplicit,
83 kType_Atomic_End,
84
85 kType_Common_Start,
86 kDegrees,
87 kMix,
88 kRadians,
89 kSign,
90 kSmoothstep,
91 kStep,
92 kType_Common_End,
93
94 kType_Convert_Start,
95 kConvert,
SJW806a5d82020-07-15 12:51:38 -050096 kSpirvPack,
97 kSpirvUnpack,
SJW173c7e92020-03-16 08:44:47 -050098 kType_Convert_End,
99
100 kType_Event_Start,
101 kRetainEvent,
102 kReleaseEvent,
103 kCreateUserEvent,
104 kIsValidEvent,
105 kSetUserEventStatus,
106 kType_Event_End,
107
108 kType_MemoryFence_Start,
109 kMemFence,
110 kReadMemFence,
111 kWriteMemFence,
112 kType_MemoryFence_End,
113
114 kType_Geometric_Start,
115 kCross,
116 kDot,
117 kDistance,
118 kLength,
119 kNormalize,
120 kFastDistance,
121 kFastLength,
122 kFastNormalize,
123 kType_Geometric_End,
124
125 kType_Image_Start,
126 kReadImagef,
127 kReadImagei,
128 kReadImageui,
129 kReadImageh,
130 kWriteImagef,
131 kWriteImagei,
132 kWriteImageui,
133 kWriteImageh,
134 kGetImageWidth,
135 kGetImageHeight,
136 kGetImageDepth,
137 kGetImageChannelDataType,
138 kGetImageChannelOrder,
139 kGetImageDim,
140 kGetImageArraySize,
141 kGetImageNumSamples,
142 kType_Image_End,
143
144 kType_Integer_Start,
145 kAbs,
146 kAbsDiff,
147 kAddSat,
148 kClamp,
149 kClz,
150 kCtz,
151 kHadd,
152 kMad24,
153 kMadHi,
154 kMadSat,
155 kMax,
156 kMin,
157 kMul24,
158 kMulHi,
159 kPopcount,
160 kRhadd,
161 kRotate,
162 kSubSat,
163 kUpsample,
164 kType_Integer_End,
165
166 kType_Math_Start,
167 kAcos,
168 kAcosh,
169 kAcospi,
170 kAsin,
171 kAsinh,
172 kAsinpi,
173 kAtan,
174 kAtan2,
175 kAtanh,
176 kAtanpi,
177 kAtan2pi,
178 kCbrt,
179 kCeil,
180 kCopysign,
181 kCos,
182 kHalfCos,
183 kNativeCos,
184 kCosh,
185 kCospi,
186 kHalfDivide,
187 kNativeDivide,
188 kErf,
189 kErfc,
190 kExp,
191 kHalfExp,
192 kNativeExp,
193 kExp2,
194 kHalfExp2,
195 kNativeExp2,
196 kExp10,
197 kHalfExp10,
198 kNativeExp10,
199 kExpm1,
200 kFabs,
201 kFdim,
202 kFloor,
203 kFma,
204 kFmax,
205 kFmin,
206 kFmod,
SJW806a5d82020-07-15 12:51:38 -0500207 kClspvFract,
SJW173c7e92020-03-16 08:44:47 -0500208 kFract,
209 kFrexp,
210 kHypot,
211 kIlogb,
212 kLdexp,
213 kLgamma,
214 kLgammaR,
215 kLog,
216 kHalfLog,
217 kNativeLog,
218 kLog2,
219 kHalfLog2,
220 kNativeLog2,
221 kLog10,
222 kHalfLog10,
223 kNativeLog10,
224 kLog1p,
225 kLogb,
226 kMad,
227 kMagmax,
228 kMagmin,
229 kModf,
230 kNan,
231 kNextafter,
232 kPow,
233 kPown,
234 kPowr,
235 kHalfPowr,
236 kNativePowr,
237 kHalfRecip,
238 kNativeRecip,
239 kRemainder,
240 kRemquo,
241 kRint,
242 kRound,
243 kRootn,
244 kRsqrt,
245 kHalfRsqrt,
246 kNativeRsqrt,
247 kSin,
248 kHalfSin,
249 kNativeSin,
250 kSincos,
251 kSinh,
252 kSinpi,
253 kSqrt,
254 kHalfSqrt,
255 kNativeSqrt,
256 kTan,
257 kHalfTan,
258 kNativeTan,
259 kTanh,
260 kTanpi,
261 kTgamma,
262 kTrunc,
263 kType_Math_End,
264
265 kType_Relational_Start,
266 kIsequal,
267 kIsnotequal,
268 kIsgreater,
269 kIsgreaterequal,
270 kIsless,
271 kIslessequal,
272 kIslessgreater,
273 kIsfinite,
274 kIsinf,
275 kIsnan,
276 kIsnormal,
277 kIsordered,
278 kIsunordered,
279 kSignbit,
280 kAny,
281 kAll,
282 kBitselect,
283 kSelect,
284 kType_Relational_End,
285
286 kType_Sync_Start,
287 kBarrier,
288 kWorkGroupBarrier,
289 kType_Sync_End,
290
291 kType_Vector_Start,
292 kShuffle,
293 kShuffle2,
294 kVecStep,
295 kVload,
296 kVloadHalf,
297 kVloadaHalf,
298 kVstore,
299 kVstoreHalf,
300 kVstoreaHalf,
301 kType_Vector_End,
302
303 kType_WorkItem_Start,
304 kGetGlobalId,
305 kGetGlobalSize,
306 kGetGlobalOffset,
307 kGetGlobalLinearId,
308 kGetGroupId,
309 kGetLocalId,
310 kGetLocalLinearId,
311 kGetLocalSize,
312 kGetEnqueuedLocalSize,
313 kGetNumGroups,
314 kGetWorkDim,
315 kType_WorkItem_End,
316
317 kType_Pipe_Start,
318 kReadPipe,
319 kWritePipe,
320 kReserveReadPipe,
321 kCommitReadPipe,
322 kIsValidReserveId,
323 kWorkGroupReserveReadPipe,
324 kWorkGroupReserveWritePipe,
325 kWorkGroupCommitReadPipe,
326 kWorkGroupCommitWritePipe,
327 kGetPipeNumPackets,
328 kGetPipeMaxPackets,
329 kType_Pipe_End,
330
331 kType_SubgroupsKHR_Start,
332 kGetSubGroupSize,
333 kGetMaxSubGroupSize,
334 kGetNumSubGroups,
335 kGetEnqueuedNumSubGroups,
336 kGetSubGroupId,
337 kGetSubGroupLocalId,
338 kSubGroupBarrier,
339 kSubGroupAll,
340 kSubGroupAny,
341 kSubGroupBroadcast,
342 kSubGroupReduceAdd,
343 kSubGroupReduceMin,
344 kSubGroupReduceMax,
345 kSubGroupScanExclusiveAdd,
346 kSubGroupScanExclusiveMin,
347 kSubGroupScanExclusiveMax,
348 kSubGroupScanInclusiveAdd,
349 kSubGroupScanInclusiveMin,
350 kSubGroupScanInclusiveMax,
351 kSubGroupReserveReadPipe,
352 kSubGroupReserveWritePipe,
353 kSubGroupCommitReadPipe,
354 kSubGroupCommitWritePipe,
355 kGetKernelSubGroupCountForNdrange,
356 kGetKernelMaxSubGroupSizeForNdrange,
357 kType_SubgroupsKHR_End,
358}; // enum BuiltinType
359
360} // namespace Builtins
361} // namespace clspv
362
363#endif // CLSPV_LIB_BUILTINSENUM_H_