SJW | 173c7e9 | 2020-03-16 08:44:47 -0500 | [diff] [blame] | 1 | // 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 | |
| 18 | namespace clspv { |
| 19 | namespace Builtins { |
| 20 | |
| 21 | enum BuiltinType { |
| 22 | kBuiltinNone = 0, |
| 23 | |
SJW | 6153137 | 2020-06-09 07:31:08 -0500 | [diff] [blame] | 24 | kType_Clspv_Start, |
| 25 | kClspvResource, |
| 26 | kClspvLocal, |
| 27 | kSpirvOp, |
SJW | 6153137 | 2020-06-09 07:31:08 -0500 | [diff] [blame] | 28 | kSpirvAtomicXor, |
SJW | 6153137 | 2020-06-09 07:31:08 -0500 | [diff] [blame] | 29 | kSpirvCopyMemory, |
| 30 | kClspvSamplerVarLiteral, |
| 31 | kClspvCompositeConstruct, |
| 32 | kType_Clspv_End, |
| 33 | |
SJW | 173c7e9 | 2020-03-16 08:44:47 -0500 | [diff] [blame] | 34 | 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-baker | 4986eff | 2020-10-29 13:38:00 -0400 | [diff] [blame] | 65 | 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, |
SJW | 173c7e9 | 2020-03-16 08:44:47 -0500 | [diff] [blame] | 79 | 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, |
SJW | 806a5d8 | 2020-07-15 12:51:38 -0500 | [diff] [blame] | 96 | kSpirvPack, |
| 97 | kSpirvUnpack, |
SJW | 173c7e9 | 2020-03-16 08:44:47 -0500 | [diff] [blame] | 98 | 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, |
SJW | 806a5d8 | 2020-07-15 12:51:38 -0500 | [diff] [blame] | 207 | kClspvFract, |
SJW | 173c7e9 | 2020-03-16 08:44:47 -0500 | [diff] [blame] | 208 | 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_ |