aboutsummaryrefslogtreecommitdiff
path: root/include/spirv/unified1/spirv.hpp11
diff options
context:
space:
mode:
Diffstat (limited to 'include/spirv/unified1/spirv.hpp11')
-rw-r--r--include/spirv/unified1/spirv.hpp11174
1 files changed, 174 insertions, 0 deletions
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 58f3bf3..51e9024 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -65,6 +65,7 @@ enum class SourceLanguage : unsigned {
OpenCL_C = 3,
OpenCL_CPP = 4,
HLSL = 5,
+ CPP_for_OpenCL = 6,
Max = 0x7fffffff,
};
@@ -150,6 +151,7 @@ enum class ExecutionMode : unsigned {
SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38,
LocalSizeHintId = 39,
+ SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446,
DenormPreserve = 4459,
DenormFlushToZero = 4460,
@@ -409,6 +411,7 @@ enum class FPRoundingMode : unsigned {
enum class LinkageType : unsigned {
Export = 0,
Import = 1,
+ LinkOnceODR = 2,
Max = 0x7fffffff,
};
@@ -650,6 +653,7 @@ enum class BuiltIn : unsigned {
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
+ CurrentRayTimeNV = 5334,
IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352,
@@ -719,6 +723,7 @@ enum class FunctionControlShift : unsigned {
DontInline = 1,
Pure = 2,
Const = 3,
+ OptNoneINTEL = 16,
Max = 0x7fffffff,
};
@@ -728,6 +733,7 @@ enum class FunctionControlMask : unsigned {
DontInline = 0x00000002,
Pure = 0x00000004,
Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
};
enum class MemorySemanticsShift : unsigned {
@@ -986,6 +992,7 @@ enum class Capability : unsigned {
StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingNV = 5340,
+ RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345,
VulkanMemoryModelKHR = 5345,
VulkanMemoryModelDeviceScope = 5346,
@@ -1010,8 +1017,12 @@ enum class Capability : unsigned {
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
+ ExpectAssumeKHR = 5629,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1020,6 +1031,7 @@ enum class Capability : unsigned {
FPGAMemoryAttributesINTEL = 5824,
FPFastMathModeINTEL = 5837,
ArbitraryPrecisionIntegersINTEL = 5844,
+ ArbitraryPrecisionFloatingPointINTEL = 5845,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
@@ -1028,13 +1040,22 @@ enum class Capability : unsigned {
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
+ DotProductInputAllKHR = 6016,
+ DotProductInput4x8BitKHR = 6017,
+ DotProductInput4x8BitPackedKHR = 6018,
+ DotProductKHR = 6019,
+ BitInstructions = 6025,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
+ OptNoneINTEL = 6094,
+ AtomicFloat16AddEXT = 6095,
+ DebugInfoModuleINTEL = 6114,
Max = 0x7fffffff,
};
@@ -1113,6 +1134,31 @@ enum class FPOperationMode : unsigned {
Max = 0x7fffffff,
};
+enum class QuantizationModes : unsigned {
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+ Max = 0x7fffffff,
+};
+
+enum class OverflowModes : unsigned {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ Max = 0x7fffffff,
+};
+
+enum class PackedVectorFormat : unsigned {
+ PackedVectorFormat4x8BitKHR = 0,
+ Max = 0x7fffffff,
+};
+
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
@@ -1470,6 +1516,12 @@ enum class Op : unsigned {
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
+ OpSDotKHR = 4450,
+ OpUDotKHR = 4451,
+ OpSUDotKHR = 4452,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@@ -1496,6 +1548,8 @@ enum class Op : unsigned {
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1537,6 +1591,10 @@ enum class Op : unsigned {
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1662,7 +1720,59 @@ enum class Op : unsigned {
OpVariableLengthArrayINTEL = 5818,
OpSaveMemoryINTEL = 5819,
OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
OpPtrCastToCrossWorkgroupINTEL = 5934,
OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
@@ -2054,6 +2164,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSDotKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUDotKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSUDotKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2079,6 +2195,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2119,6 +2237,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExpectKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2242,7 +2364,59 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;