blob: 2586af319ce54536bc23820239b403cf83fa1690 [file] [log] [blame]
// Copyright 2019 The Clspv Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef CLSPV_LIB_BUILTINSENUM_H_
#define CLSPV_LIB_BUILTINSENUM_H_
namespace clspv {
namespace Builtins {
enum BuiltinType {
kBuiltinNone = 0,
kType_Clspv_Start,
kClspvResource,
kClspvLocal,
kSpirvOp,
kSpirvAtomicXor,
kSpirvCopyMemory,
kClspvSamplerVarLiteral,
kClspvCompositeConstruct,
kType_Clspv_End,
kType_Async_Start,
kAsyncWorkGroupCopy,
kAsyncWorkGroupStridedCopy,
kWaitGroupEvents,
kPrefetch,
kType_Async_End,
kType_Atomic_Start,
kAtomicInit,
kAtomicAdd,
kAtomicSub,
kAtomicInc,
kAtomicDec,
kAtomicXchg,
kAtomicCmpxchg,
kAtomicMin,
kAtomicMax,
kAtomicAnd,
kAtomicOr,
kAtomicXor,
kAtomicWorkItemFence,
kAtomicStore,
kAtomicStoreExplicit,
kAtomicLoad,
kAtomicLoadExplicit,
kAtomicExchange,
kAtomicExchangeExplicit,
kAtomicCompareExchangeStrong,
kAtomicCompareExchangeStrongExplicit,
kAtomicCompareExchangeWeak,
kAtomicCompareExchangeWeakExplicit,
kAtomicFetchAdd,
kAtomicFetchAddExplicit,
kAtomicFetchSub,
kAtomicFetchSubExplicit,
kAtomicFetchOr,
kAtomicFetchOrExplicit,
kAtomicFetchXor,
kAtomicFetchXorExplicit,
kAtomicFetchAnd,
kAtomicFetchAndExplicit,
kAtomicFetchMin,
kAtomicFetchMinExplicit,
kAtomicFetchMax,
kAtomicFetchMaxExplicit,
kAtomicFlagTestAndSet,
kAtomicFlagTestAndSetExplicit,
kAtomicFlagClear,
kAtomicFlagClearExplicit,
kType_Atomic_End,
kType_Common_Start,
kDegrees,
kMix,
kRadians,
kSign,
kSmoothstep,
kStep,
kType_Common_End,
kType_Convert_Start,
kConvert,
kSpirvPack,
kSpirvUnpack,
kType_Convert_End,
kType_Event_Start,
kRetainEvent,
kReleaseEvent,
kCreateUserEvent,
kIsValidEvent,
kSetUserEventStatus,
kType_Event_End,
kType_MemoryFence_Start,
kMemFence,
kReadMemFence,
kWriteMemFence,
kType_MemoryFence_End,
kType_Geometric_Start,
kCross,
kDot,
kDistance,
kLength,
kNormalize,
kFastDistance,
kFastLength,
kFastNormalize,
kType_Geometric_End,
kType_Image_Start,
kReadImagef,
kReadImagei,
kReadImageui,
kReadImageh,
kWriteImagef,
kWriteImagei,
kWriteImageui,
kWriteImageh,
kGetImageWidth,
kGetImageHeight,
kGetImageDepth,
kGetImageChannelDataType,
kGetImageChannelOrder,
kGetImageDim,
kGetImageArraySize,
kGetImageNumSamples,
kType_Image_End,
kType_Integer_Start,
kAbs,
kAbsDiff,
kAddSat,
kClamp,
kClz,
kCtz,
kHadd,
kMad24,
kMadHi,
kMadSat,
kMax,
kMin,
kMul24,
kMulHi,
kPopcount,
kRhadd,
kRotate,
kSubSat,
kUpsample,
kType_Integer_End,
kType_Math_Start,
kAcos,
kAcosh,
kAcospi,
kAsin,
kAsinh,
kAsinpi,
kAtan,
kAtan2,
kAtanh,
kAtanpi,
kAtan2pi,
kCbrt,
kCeil,
kCopysign,
kCos,
kHalfCos,
kNativeCos,
kCosh,
kCospi,
kHalfDivide,
kNativeDivide,
kErf,
kErfc,
kExp,
kHalfExp,
kNativeExp,
kExp2,
kHalfExp2,
kNativeExp2,
kExp10,
kHalfExp10,
kNativeExp10,
kExpm1,
kFabs,
kFdim,
kFloor,
kFma,
kFmax,
kFmin,
kFmod,
kClspvFract,
kFract,
kFrexp,
kHypot,
kIlogb,
kLdexp,
kLgamma,
kLgammaR,
kLog,
kHalfLog,
kNativeLog,
kLog2,
kHalfLog2,
kNativeLog2,
kLog10,
kHalfLog10,
kNativeLog10,
kLog1p,
kLogb,
kMad,
kMagmax,
kMagmin,
kModf,
kNan,
kNextafter,
kPow,
kPown,
kPowr,
kHalfPowr,
kNativePowr,
kHalfRecip,
kNativeRecip,
kRemainder,
kRemquo,
kRint,
kRound,
kRootn,
kRsqrt,
kHalfRsqrt,
kNativeRsqrt,
kSin,
kHalfSin,
kNativeSin,
kSincos,
kSinh,
kSinpi,
kSqrt,
kHalfSqrt,
kNativeSqrt,
kTan,
kHalfTan,
kNativeTan,
kTanh,
kTanpi,
kTgamma,
kTrunc,
kType_Math_End,
kType_Relational_Start,
kIsequal,
kIsnotequal,
kIsgreater,
kIsgreaterequal,
kIsless,
kIslessequal,
kIslessgreater,
kIsfinite,
kIsinf,
kIsnan,
kIsnormal,
kIsordered,
kIsunordered,
kSignbit,
kAny,
kAll,
kBitselect,
kSelect,
kType_Relational_End,
kType_Sync_Start,
kBarrier,
kWorkGroupBarrier,
kType_Sync_End,
kType_Vector_Start,
kShuffle,
kShuffle2,
kVecStep,
kVload,
kVloadHalf,
kVloadaHalf,
kVstore,
kVstoreHalf,
kVstoreaHalf,
kType_Vector_End,
kType_WorkItem_Start,
kGetGlobalId,
kGetGlobalSize,
kGetGlobalOffset,
kGetGlobalLinearId,
kGetGroupId,
kGetLocalId,
kGetLocalLinearId,
kGetLocalSize,
kGetEnqueuedLocalSize,
kGetNumGroups,
kGetWorkDim,
kType_WorkItem_End,
kType_Pipe_Start,
kReadPipe,
kWritePipe,
kReserveReadPipe,
kCommitReadPipe,
kIsValidReserveId,
kWorkGroupReserveReadPipe,
kWorkGroupReserveWritePipe,
kWorkGroupCommitReadPipe,
kWorkGroupCommitWritePipe,
kGetPipeNumPackets,
kGetPipeMaxPackets,
kType_Pipe_End,
kType_SubgroupsKHR_Start,
kGetSubGroupSize,
kGetMaxSubGroupSize,
kGetNumSubGroups,
kGetEnqueuedNumSubGroups,
kGetSubGroupId,
kGetSubGroupLocalId,
kSubGroupBarrier,
kSubGroupAll,
kSubGroupAny,
kSubGroupBroadcast,
kSubGroupReduceAdd,
kSubGroupReduceMin,
kSubGroupReduceMax,
kSubGroupScanExclusiveAdd,
kSubGroupScanExclusiveMin,
kSubGroupScanExclusiveMax,
kSubGroupScanInclusiveAdd,
kSubGroupScanInclusiveMin,
kSubGroupScanInclusiveMax,
kSubGroupReserveReadPipe,
kSubGroupReserveWritePipe,
kSubGroupCommitReadPipe,
kSubGroupCommitWritePipe,
kGetKernelSubGroupCountForNdrange,
kGetKernelMaxSubGroupSizeForNdrange,
kType_SubgroupsKHR_End,
}; // enum BuiltinType
} // namespace Builtins
} // namespace clspv
#endif // CLSPV_LIB_BUILTINSENUM_H_